笔者这段时间正好在研究QT方面的界面设计,所以必不可少的接触到了Qt Designer这个快 速开发工具。苦于刚入门时的徘徊,现在也算是略有所懂,所以把Qt Designer开发的流 程做一个简要的整理。本文仅针对Qt4&Linux平台,其它平台方法类似。
- 打开Qt Designer,创建你想要的图形界面。保存文件,会得到一个后缀名为.ui的文 件,这个就是Qt Designer可识别的界面文件。比如"world.ui"。
- 创建你所需要的"main.cpp"文件,并在主程序中包含"ui_world.h"文件(现在还没 有,是一个通过qmake工具自动创建的cpp头文件)。结合代码说明如下:
- 使用"qmake -project"命令创建Qt的工程文件。
- 使用"qmake"命令自动创建工程对应的Makefile。
- 使用经典的"make"命令开始自动化编译工程。
- 执行编译好的程序,得到所创建界面。
#include <QApplication> #include <QDialog> #include "ui_world.h" int main(int argc, int *argv[]) { QApplication app(argc, argv); Ui::world ui; QDialog *dlg = new QDialog; ui.setupUi(dlg); dlg->show(); return app.exec(); }主程序开始的第二行表明了如何引用由world.ui(生成ui_world.h的源文件)定义的图形类。 第四行将一个QDialog的对象传递给了setupUi函数,使ui完成了初始化工作。
一般来说,我们创建的界面总是无法完全符合我们的要求,这个时候我们可以通过继承的 方式将已经定义的Ui::world类,进而定义符合我们要求的类。示例如下:
#ifndef _WORLD_H_ #define _WORLD_H_ #include <QDialog> #include "ui_world.h" class world : public QDialog, public Ui::world { Q_OBJECT public: world(QWidget *parent=0); private slots: //slots are defined here }; #endif
此处要注意通用的命名规则,Qt Designer生成的文件名为world.ui,qmake调用moc生成 的文件名为ui_world.h(也就是界面类原始定义的cpp头文件),我们继承Ui::world得到 的自己的类的定义文件world.h。这三都的对应一定要注意,否则当代码量增大的时候, 会便利工程管理复杂性增大。毕竟写程序的人都有逻辑性思维和惰性思维。
说明:
本文中的程序仅作示范说明,未可正常运行(语法无错)。
参考资料:
《C++ GUI Qt 4 编程》(第二版)[加拿大] Jasmin Blanchette,Mark
Summerfield著,闫锋欣 曾泉人等译,电子工业出版社。