1111111111111111111111111111111111111111111111111111111111111111111
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QWidget>
class QPushButton;
class MainWindow : public QWidget {
Q_OBJECT // 只要定义有信号和槽的类,都得先引用这个宏.
public :
MainWindow();
~MainWindow();
public slots : // 槽的定义
void myExit();
signal : // 信号的定义
private :
QPushButton* button;
};
#endif
22222222222222222222222222222222222222222222222222222222222222222
#include <QPushButton>
#include "MainWindow.h"
MainWindow::MainWindow() {
this->setMinimumSize(400, 600);
// button
button = new QPushButton("Das Button", this);
button->resize(200, 50);
QObject::connect(button, SIGNAL(clicked()), this, SLOT(myExit()));
}
MainWindow::~MainWindow() {
delete button;
}
void MainWindow::myExit() {
emit exit(0);
}
333333333333333333333333333333333333333333333333333333333333333333333
#include <QApplication>
#include <QWidget>
#include "MainWindow.h"
int main(int argc, char** argv) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
.pro file
TEMPLATE = app
CONFIG += qt warn_on
HEADERS = MainWindow.h
SOURCES = main.cpp
TARGET = test
QTDIR_build:REQUIRES="contains(QT_CONFIG, small-config)"
因为有信号和槽,所以对MOC文件的产生有些特殊,因为大多数时候都得自定义槽,所以可以作为标准的形式来操作:
qmake -project
qmake
make
搞定. 差点搞得吐血