本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com
pri 用于模块化
为了将Qt工程中的大型项目分组开发,将项目分成多组文件,每个文件负责一种或多种功能
分组的实现方法:
1、在工程目录下创建分组文件夹, eg:network文件夹
2、分组目录下创建分组.pri文件 , eg:network.pri
3、在.pro工程文件中添加.pri文件,添加方法, eg:include($$PWD/network/network.pri)
4、构建工程使出现.pri分组,接下来就可以在.pri工程中添加相应的文件了
项目
对象树
信号与槽机制:观察者模式
信号槽是 Qt 框架引以为豪的机制之一。熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力。
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。(这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。)
connect函数
- // !!! Qt 5
- connect(sender, signal, receiver, slot);
自定义信号槽
- signals:// 定义信号函数
- public slots:// 定义槽函数
- emit // 发送信号:调用定义的信号函数
总结
lambda表达式
QMainWindow
菜单栏:只有一个
工具栏:可有多个
状态栏:只有一个
铆接部件:浮动窗口
核心(中心)部件:除以上部件外
资源文件
背景图片
UI
对话框
布局
Qt 提供的布局中以下三种是我们最常用的:
- QHBoxLayout:按照水平方向从左到右布局;
- QVBoxLayout:按照竖直方向从上到下布局;
- QGridLayout:在一个网格中进行布局,类似于 HTML 的 table;
弹簧的作用:例如添加一个按钮之后再水平布局会发生变化(被拉伸),弹簧的作用就是固定
打包.exe
weindeplayqt macdeployqt linuxdeployqt 各平台分别打包