▲定义:Qt 是一个跨平台C++图形用户界面应用程序开发框架
Qt除了控件之外 (对标C++中的类) ,还有一些机制:
信号和槽
坐标系统
内存回收机制
带菜单栏的窗口
对话框
▲定义:GUI即Graphical User Interface,意为图形用户界面
1.QMainWindow:主窗口类,具有主菜单、工具栏和状态栏,类似一般程序的主窗口;
2.QWidget:所有具有可视化界面类的基类;
3.QDialog:对话框类,建立基于对话框的界面
定义:XML(Extensible Markup Language, XML) 即可扩展标记性语言。
▲XML文件的主要作用:主要用于存储和传输数据。
Qt GUI设计主要包括[可视化] 、[代码化]和(混合式)
[可视化]效率高、操作直观,但功能受限:
(代码化]功能全面,可实现复杂设计,但效率低、过程繁琐:
[混合式]将二者结合,能用可视化的就尽可能可视化,无法解决的问题再用纯代码实现
Qt GUI设计
▲请解释Qt中的信号和槽机制(pp.29-30)
- 信号Signal是在特定情况下被发射的事件
- 槽Slot是对信号响应的函数,与一般函数不同的是,槽函数可以与信号关联,当信号被发射时,关联的槽函数被自动执行
- 信号和槽关联是通过QObject::connect函数实现的,该函数是QObject的一个静态函数,基本格式为connect(sender,SIGNAL( signal() ),receiver,SLOT( slot() ) )
▲信号和槽中的重要规则(pp.30)
- 一个信号可以连接多个槽
例如:
connect(spinNum, SIGNAL(valueChanged(int)),this,SLOT(addFun(int)))
connect(spinNum, SIGNAL(valueChanged(int)),this,SLOT(updateStratus(int)))
- 多个信号可以连接同一个槽
- 一个信号发射时可以联结另一个信号
connect(spinNum, SIGNAL(valueChanged(int)), this, SIGNAL(refreshInfo(int)))
- 严格情况下,信号和槽的参数个数和类型需要一致,至少信号的参数不能少于槽的参数
- 使用信号和槽的类中,必须在类的定义中加入宏Q_OBJECT
-
信号和槽中的重要规则(pp.30)
当一个信号被发射时,与其关联的槽函数通常被立即执行,只有当信号关联的所有槽函数执行完毕后,才会执行发射信号处后面的代码