#include <QApplication>
#include <QPushButton>
#include <iostream>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button = new QPushButton("&Ok");
button->show();
std::cout << "345\n";
return app.exec();
}
#include <QApplication>
#include <QPushButton>
class MyWidget : public QPushButton
{
public:
MyWidget(QWidget *parent = 0);
public slot:
void btnClick();
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
connect(this, SIGNAL(clicked()), this, SLOT(btnClick()));
}
void MyWidget::btnClick()
{
std::cout << "345\n";
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
Только она правда выведется консольном приложении, а не в этом.
#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <iostream>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0);
public slots:
void btnClick();
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QPushButton *ok = new QPushButton(tr("Ok"), this);
connect(ok, SIGNAL(clicked()), this, SLOT(btnClick()));
}
void MyWidget::btnClick()
{
std::cout << "345\n";
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
макрос добавь в начало
class MyWidget : public QWidget
{
Q_OBJECT
Добавить макрос Q_OBJECT в класс MyWidget и в конце файла main.cpp прописать
#include "main.moc"
да, к стати инклюд нужен, т.к. и объявление класса и его реализация, находятся в одном файле
Как вариант еще можно сделать так:
#include <QtGlobal>
#include <QtCore/QEventLoop>
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QEventLoop loop;
QPushButton btn("Exit");
QObject::connect(&btn, SIGNAL(clicked()), &loop, SLOT(quit()));
btn.show();
loop.exec();
qDebug() << "345\n";
return 0;
}
#include <QtGlobal>
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton btn("Exit");
QObject::connect(&btn, SIGNAL(clicked()), &app, SLOT(quit()));
btn.show();
int ret = app.exec();
qDebug() << "345\n";
return ret;
}
#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QLCDNumber>
#include <iostream>
#include <QVBoxLayout>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
public slots:
int btnClick();
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QLCDNumber *lcd = new QLCDNumber(3);
lcd->display(77);
QLCDNumber *lcd1 = new QLCDNumber(3);
QPushButton *ok = new QPushButton(tr("Ok"), this);
connect(ok, SIGNAL(clicked()), this, SLOT(btnClick()));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(ok);
layout->addWidget(lcd);
layout->addWidget(lcd1);
setLayout(layout);
}
int MyWidget::btnClick()
{
int a = 5;
int b = a + 2;
int c = b + 5;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
#include "hello.moc"
#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QLCDNumber>
#include <iostream>
#include <QVBoxLayout>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
public slots:
int btnClick();
private:
QLCDNumber *lcd;
QLCDNumber *lcd1;
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
lcd = new QLCDNumber(3);
lcd->display(77);
lcd1 = new QLCDNumber(3);
QPushButton *ok = new QPushButton(tr("Ok"), this);
connect(ok, SIGNAL(clicked()), this, SLOT(btnClick()));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(ok);
layout->addWidget(lcd);
layout->addWidget(lcd1);
setLayout(layout);
}
int MyWidget::btnClick()
{
int a = 5;
int b = a + 2;
int c = b + 5;
lcd->display(a);
lcd1->display(c);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
#include "hello.moc"
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)