Ant-Veil

Caspar Blog

如何创建 Qt 工程

| Comments

刚才打了一大段字,不小心给其他页面覆盖了……看来 WP 的自动保存功能还是得开启……

最近有心学一下 GUI 编程,在 GTK, wxWidgets 和 QT 之间选择,最后因为 QT Designer 和喜欢 C++的缘故选择了 QT。当然 QT4 Designer 也不是那么傻瓜化的东西,有很多步骤都需要自己来完成。经过一番 Google 上的学习之后,我总算完成了一个简单的 QT 工程的创建,因此以这个工程为例,记录一下创建过程,以供参考。

项目名称:POS
主程序名:main.cpp
主窗口及 SIGNAL/SLOT 处理:POSMainWindow[.h, .cpp]
界面文件:ui_POSMainWindow.h, POSMainWindow.ui Meta Object Compiler文件:moc_POSMainWindow[.h, .cpp]

1. 新建界面配置文件(POSMainWindow.ui)

通过在 QT4 Designer 中拖拽拖拽就能生成一个基本的.ui 配置文件了。

2. 生成 ui 头文件(ui_POSMainWindow.h)

uic POSMainWindow.ui -o ui_POSMainWindow.h

3. 编写主窗口及 SIGNAL/SLOT 处理文件(POSMainWindow.h, POSMainWindow.cpp)

POSMainWindow.h

#ifndef _POSMAINWINDOW_H_
#define _POSMAINWINDOW_H_

#include #include "ui_POSMainWindow.h"

class POSMainWindow :
public QMainWindow, public Ui::POSMainWindow
{ Q_OBJECT
public:
POSMainWindow(QMainWindow *parent = 0);
public slots:
// your own slots
};

#endif /*_POSMAINWINDOW_H_*/

POSMainWindow.cpp

#include "POSMainWindow.h"

POSMainWindow::POSMainWindow(QMainWindow *parent) :
QMainWindow(parent)
{ setupUi(this);
this->show();
// connect(panel, SIGNAL(...()), this, SLOT(...()));
}

//void POSMainWindow::SLOT()
//{
// ...........
//}

4. 生成 MOC 文件(moc_POSMainWindow.h, moc_POSMainWindow.cpp)

因为自定义 SLOT 之前需要使用 Q_OBJECT 宏,而这个宏跟元对象编译器有关,因此要生成对应的 moc 文件才不至于在 link 的时候报错。

moc MainWindow.h -o moc_MainWindow.h

之后生成了两个 moc 前缀的文件。

5. 生成主程序(main.cpp)

#include "POSMainWindow.h"

int main(int argc, char *argv[])
{ QApplication app(argc, argv);
new POSMainWindow;
return app.exec();
}

6. 生成 Makefile

qmake -project
qmake
make

7. 试试看

./POS

Comments