Qt creator创建窗口应用过程

QT creator 是用于开发QT程序的IDE,集成了QT designer, Assistant,Linguist。

通常使用QT Creator来构建QT应用,QT designer来设计GUI:

如果要利用QT设计师开发一个项目,则过程为:
第一步:创建QT application,并创建窗口应用:

Qt creator创建窗口应用过程_第1张图片

第二步:选择Qt的编译系统,编译系统可选择项有:

qmake,CMake,Qbs,通常使用qmake来构建默认的makefile文件。
Qt creator创建窗口应用过程_第2张图片

第三步:为你QT窗口类定制基础类框架,如果需要生成界面窗口文件,则需要勾选“Generate form”。

Qt creator创建窗口应用过程_第3张图片

第四步:选择界面组件翻译工具,用于设置多种语言显示界面组件信息。
Qt creator创建窗口应用过程_第4张图片

第五步:选择编译调试构建套件:MinGW :windows平台上使用的GNU工具集,MSVC需要安装MSVC编译器模块。
Qt creator创建窗口应用过程_第5张图片

第六步:选择是否作为子项目合并到总项目,及配置项目线上版本控制:
Qt creator创建窗口应用过程_第6张图片

最终将进入项目开发者界面。

Qt creator创建窗口应用过程_第7张图片
配置项目管理文件.pro:

qmake使用项目(.pro)文件中的信息来生成Makefile文件:

qmake hello.pro -o Makefile

在pro文件中,告诉qmake创建makefile细节的常用系统变量:

HEADERS:应用程序中所有头文件的列表。

SOURCES:应用程序中所有源文件的列表。

FORMS:应用程序中的所有.ui文件。

DESTDIR:指定生成的可执行应用程序路径

TARGET:可执行应用程序的名称,默认值为项目文件的名称。

INCLUDEPATH:应用程序所需头文件的包含路径的列表。

LIBS:指定链接到项目中的库名。

CONFIG变量指定编译器所要使用的选项和所需要被链接的库。

Qt creator创建窗口应用过程_第8张图片

.pro.user(xml文件):

用于记录打开工程的路径,所用的编译器、构建的工具链、可执行程序生成目录、打开工程的qt-creator的版本等。

MainWindow窗口类对象对应的主界面mainwindow.ui(xml格式文件):

Qt creator创建窗口应用过程_第9张图片

两个类:

1.基于基础对话框类声明的本地类对象(这里是MainWindow类,对应于this,即对应于主界面),以及Ui界面类对象(这里是Ui::MainWindow *ui,生成的对象对应于拖拽到主界面上的组件),默认的ui界面类对象是本地类对象的私有成员属性。

MainWindow进行本地代码化,而Ui::MainWindow类对应ui界面窗口类,可通过designer工具可视化拖拽组件生成。
Qt creator创建窗口应用过程_第10张图片

Qt creator创建窗口应用过程_第11张图片

Ui::MainWindow类公有继承Ui_MainWindow类(Ui_MainWindow编译套件编译生成)。

ui->setupUi(this);

执行ui->setupUi(this),可视化类把代码化类对象this作为父类构建可视化子类组件(即拖拽到主界面上的组件),绘制成功所有组件后,执行retranslateUi(MainWindow)设置可视化类组件的显示字符集,执行QMetaObject::connectSlotsByName()建立可视化类组件的默认信号槽联系。显然,操作可视化界面组件的函数接口必须要在ui->setupUi(this)之后执行。

Qt creator创建窗口应用过程_第12张图片

main函数入口:
Qt creator创建窗口应用过程_第13张图片

最终总文件个数:
Qt creator创建窗口应用过程_第14张图片

Qt creator创建窗口应用过程_第15张图片

Qt类与类的继承关系图,可以发现QWidget继承QObject和QPaintDevice:
Qt creator创建窗口应用过程_第16张图片
Qt creator创建窗口应用过程_第17张图片
QT中重要接口:

1.测试程序代码块性能接口:

QElapsedTimer timedebuge;//声明一个时间计时器对象

timedebuge.start();//开始计时

.....// 需要测试的代码

qDebug()<

2.处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态,可调用qApp->processEvents(),让程序马上处理那些还没有处理的事件,然后再把使用权返回给调用者。达到即时响应事件。

  1. 设置软件编码模式

    比如设置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版本截图或网络下载图

你可能感兴趣的:(Qt应用创建过程及实用接口)