笔者这段时间正好在研究QT方面的界面设计,所以必不可少的接触到了Qt Designer这个快
速开发工具。苦于刚入门时的徘徊,现在也算是略有所懂,所以把Qt Designer开发的流
程做一个简要的整理。本文仅针对Qt4&Linux平台,其它平台方法类似。
打开Qt Designer,创建你想要的图形界面。保存文件,会得到一个后缀名为.ui的文
件,这个就是Qt Designer可识别的界面文件。比如"world.ui"。
创建你所需要的"main.cpp"文件,并在主程序中包含"ui_world.h"文件(现在还没
有,是一个通过qmake工具自动创建的cpp头文件)。结合代码说明如下:
#include
#include
#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完成了初始化工作。
使用"qmake -project"命令创建Qt的工程文件。
使用"qmake"命令自动创建工程对应的Makefile。
使用经典的"make"命令开始自动化编译工程。
执行编译好的程序,得到所创建界面。
一般来说,我们创建的界面总是无法完全符合我们的要求,这个时候我们可以通过继承的
方式将已经定义的Ui::world类,进而定义符合我们要求的类。示例如下:
#ifndef _WORLD_H_
#define _WORLD_H_
#include
#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著,闫锋欣 曾泉人等译,电子工业出版社。