GUI应用程序设计基础
UI文件设计与运行机制
项目文件组成
信号与槽
信号是特定情况下被发射的事件.槽是对信号响应的函数.
如:QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()))
(1). 一个信号可关联多个槽
(2). 多个信号可连接到一个槽
(3). 一个信号可连接另外一个信号,如:connect(spinNum, SIGNAL(valueChanged(int)), this, SIGNAL(refreshInfo(int)))
注意:
(1). 严格下,信号与槽的参数个数与类型必须匹配
(2). 使用信号,槽的类,需在类定义中加入宏:Q_OBJECT
(3). 当一个信号被发射时,与其关联的槽函数通常被立即执行。只有当信号关联的所有槽函数执行完毕后,才会执行发射信号处后面的代码。
依据Ui
设计器文件生成的.h
的setupUI
最后的QMetaObject::connectSlotsByName(objectName)
将自动搜索objectName
界面上的所有组件,将信号和槽函数匹配的对关联起来。
它假设槽函数为:void on_<object name>_<signal name>(<signal parameter>)
代码化Ui设计
可视化Ui
设计是为了效率,
代码化Ui
设计提供了最大的灵活性,和能力。
混合
原则:可用可视化Ui
的,用可视化Ui
提高效率;不能的用代码。
QAction
可创建菜单项,工具栏按钮,还可设置为QToolButton
按钮的关联Action
。
点击由Action
创建的菜单项,按钮,就是执行Action
的槽函数。
Action的功能实现
Qt Creator使用技巧
功能键 | 含义 |
---|---|
F2 | 声明/定义 |
Ctrl+/ | 注释 |
F1 | 帮助 |
Ctrl+F | 查找/替换 |
Ctrl+B | 编译 |
F5 | 调试 |