QT creator 是用于开发QT程序的IDE,集成了QT designer, Assistant,Linguist。
通常使用QT Creator来构建QT应用,QT designer来设计GUI:
如果要利用QT设计师开发一个项目,则过程为:
第一步:创建QT application,并创建窗口应用:
第二步:选择Qt的编译系统,编译系统可选择项有:
qmake,CMake,Qbs,通常使用qmake来构建默认的makefile文件。
第三步:为你QT窗口类定制基础类框架,如果需要生成界面窗口文件,则需要勾选“Generate form”。
第四步:选择界面组件翻译工具,用于设置多种语言显示界面组件信息。
第五步:选择编译调试构建套件:MinGW :windows平台上使用的GNU工具集,MSVC需要安装MSVC编译器模块。
第六步:选择是否作为子项目合并到总项目,及配置项目线上版本控制:
最终将进入项目开发者界面。
配置项目管理文件.pro:
qmake使用项目(.pro)文件中的信息来生成Makefile文件:
qmake hello.pro -o Makefile
在pro文件中,告诉qmake创建makefile细节的常用系统变量:
HEADERS:应用程序中所有头文件的列表。
SOURCES:应用程序中所有源文件的列表。
FORMS:应用程序中的所有.ui文件。
DESTDIR:指定生成的可执行应用程序路径
TARGET:可执行应用程序的名称,默认值为项目文件的名称。
INCLUDEPATH:应用程序所需头文件的包含路径的列表。
LIBS:指定链接到项目中的库名。
CONFIG变量指定编译器所要使用的选项和所需要被链接的库。
.pro.user(xml文件):
用于记录打开工程的路径,所用的编译器、构建的工具链、可执行程序生成目录、打开工程的qt-creator的版本等。
MainWindow窗口类对象对应的主界面mainwindow.ui(xml格式文件):
两个类:
1.基于基础对话框类声明的本地类对象(这里是MainWindow类,对应于this,即对应于主界面),以及Ui界面类对象(这里是Ui::MainWindow *ui,生成的对象对应于拖拽到主界面上的组件),默认的ui界面类对象是本地类对象的私有成员属性。
MainWindow进行本地代码化,而Ui::MainWindow类对应ui界面窗口类,可通过designer工具可视化拖拽组件生成。
Ui::MainWindow类公有继承Ui_MainWindow类(Ui_MainWindow编译套件编译生成)。
ui->setupUi(this);
执行ui->setupUi(this),可视化类把代码化类对象this作为父类构建可视化子类组件(即拖拽到主界面上的组件),绘制成功所有组件后,执行retranslateUi(MainWindow)设置可视化类组件的显示字符集,执行QMetaObject::connectSlotsByName()建立可视化类组件的默认信号槽联系。显然,操作可视化界面组件的函数接口必须要在ui->setupUi(this)之后执行。
main函数入口:
最终总文件个数:
Qt类与类的继承关系图,可以发现QWidget继承QObject和QPaintDevice:
QT中重要接口:
1.测试程序代码块性能接口:
QElapsedTimer timedebuge;//声明一个时间计时器对象
timedebuge.start();//开始计时
.....// 需要测试的代码
qDebug()<<timedebuge.elapsed()<<"ms";//输出计时
2.处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态,可调用qApp->processEvents(),让程序马上处理那些还没有处理的事件,然后再把使用权返回给调用者。达到即时响应事件。
-
设置软件编码模式
比如设置utf-8编码:
QTextCodec *codec = QTextCodec::codecForName(“UTF-8”);//或者"GBK",不分大小写
QTextCodec::setCodecForLocale(codec);
4.设置指定组件样式(3种方式),以设置QWidget为例:
QWidget objWid;
1.指定类类型样式
objWid.setStyleSheet("QWidget { background: yellow }"); //表示设置objWid对象中QWidget类对象及其子类的背景颜色样式为yellow
objWid.setStyleSheet("QPushButton { background: yellow }"); //表示设置objWid对象中子类为QPushButton类对象的背景颜色样式为yellow
2.指定全局样式
objWid.setStyleSheet("background: yellow "); //设置objWid类及其子类的背景颜色样式为yellow.
3.指定类对象样式
objWid.setStyleSheet("QWidget #pushbutton{background: yellow }"); //设置objWid对象的QWidget类型的子类对象pushbutton背景颜色样式为yellow.
以上插图来自于QT creator 4.11.1版本截图或网络下载图