![](https://img.haomeiwen.com/i8944447/92c6d569025be4a2.jpg)
1,UI文件设计与运行机制。(以新建一个Widget Application项目为例,选择QWidget作为窗体基类)
项目文件组成(四部分):
-
项目管理文件——“.pro”
-
主函数文件——“main.cpp”
-
界面文件——“.ui”
-
窗体相关的文件——“widget.h” “widget.cpp” “widget.ui” “ui_widget.h”。
2,可视化UI设计。(以新建一个Widget Application项目为例,选择Qialog作为窗体基类)
*界面组件布局
Qt界面设计使用了布局(layout)功能,可以使界面上组件的排列和分布更有规则。
*信号与槽
信号与槽是Qt设计的基础,也是一大创新。举例:按下按钮A后窗口B关闭。其逻辑顺序如下:
信号(signal) | clicked() | 槽(slot) | closed() |
---|---|---|---|
按钮A | 按下 | 窗口B | 关闭 |
*可视化生成槽函数原型与框架
选中面板上的组件,右击调出快捷菜单,选择“go to slot”,之后通过对话框选择点击实现信号与槽的功能。
3,代码化UI设计。(以新建一个Widget Application项目为例,选择QDialog作为窗体基类,创建时取消创建窗体,即不勾选“Generate form”复选框)
代码化比可视化更加强大和灵活,接下来介绍如何创建:
*界面创建
- QWDlgManual类定义
- 界面组件的创建与布局
*信号与槽的关联
在设计UI使用纯代码时,信号与槽的关联当然也需要代码来完成。函数iniSignalSlot()可以初始化所有信号与槽的关联。
很显然,仅仅使用代码工作量会很庞大和复杂,但是为了兼顾简便和灵活,可以采用混合式UI设计。
4,混合方式UI设计。
*设计目的
可视化可以直观的进行界面设计,提高工作效率,但是在可视化中某些组件可能无法可视化的添加到界面上,这是就需要代码来解决;采用纯代码设计效率太低,过程非常繁琐,但是功能很强大和灵活。因此需要代码的时候用代码,可视化可以解决的用可视化,这样就能取其长,避其短。
*创建项目并添加资源文件
(以新建一个Widget Application项目为例,选择QMainWindow作为基类,新建类名称设为QWMainWind)
*设计Action
Action可以创建菜单项,工具栏按钮,还可以设置为QToolButton按钮的关联Action。QAction是一个类,可以在界面设计上创建Action,并编写其trigger()信号的槽函数。点击这些由Action创建的菜单项,按钮就是执行Action的槽函数。
*设计菜单和工作栏
本项目的窗体类QWMainWind是从QMainWindow继承的,具有菜单栏,工具栏,状态栏。
*代码创建其他界面组件
UI设计器可以完成主要的界面功能,但是这些组件还不能工作,还需要编写一些代码来实现界面功能。
*Action的功能实现
Action的主要信号是trigger(),为一个Action的trigger()信号编写好槽函数之后,菜单和工具栏上由此Action创建的菜单项和工具栏都关联此槽函数。
Action有很多功能,比如剪切,复制,粘贴,清除,可以对文本进行操作,另外Action还可以设置粗体,斜体,下划线等等功能。
*手工创建的组件的信号与槽
编写槽函数代码,将信号与槽关联起来。
*为应用程序创建图标
一般Qt Creator创建的可执行文件有默认图标,如果想自定义,只需两步:
- 将一个图标文件(必须是“.ico”后缀)复制到项目源文件目录下;
- 在项目配置文件里用RC_ICONS设置图标文件名,并添加以下代码:
RC_ICONS = AppIcon.ico
这样就可以了。
5,Qt Creator的使用技巧
主要是快捷键和使用技巧。
网友评论