什么是QT
- QT是一个跨平台的C++图像用户界面应用程序框架
- QT在1991年由奇趣科技开发
- QT的优点
- 跨平台,几乎支持所有平台
- 接口简单,容易上手
- 一定程度上简化了内存回收机制
- 有很好的社区氛围
- 可以进行嵌入式开发
QWidget
QT注意事项
-
命名规范
- 类名 首字母大写,单词和单词之间首字母大写
- 函数名 变量名称 首字母小写,单词和单词之间首字母大写
-
快捷键
- 注释 ctrl + /
- 运行 ctrl + r
- 编译 ctrl + b
- 查找 ctrl + f
- 帮助文档 F1
- 自动对齐 ctrl + i
- 同名的.h和.cpp切换 F4
按钮
- 按钮常用API
- show() 以顶层方式弹出窗口控件
- setParent() 选择依赖方式
- setText() 设置文本
- resize() 重置窗口大小
- move() 移动
- setWindowTitle() 设置窗口大小
- setFixedSize() 设置固定窗口大小
QT中的对象树
- 当创建的对象在堆区的时候,如果指定的付钱是QObject 派生下来的类或者子类
- 派生下来的类,可以不需要管理释放操作,会将对象放入对象树 一定程度上简化了内存回收机制
QT的窗口坐标系
- 笛卡尔坐标系[左上角为0,0点]
QT信号和槽
- connect( 信号的发送者 ,信号的具体信息, 信号的接受者,信号的处理[槽])
- 信号槽的优点 松散耦合
- 信号发送端 和 接收端本身是没有关联的,通过connectl连接,将两者耦合在一起
- 信号关键字:Signals
- chlicked(bool) 点击
- pressed() 按下
- released() 释放
- toggled(bool) 切换状态
- 槽的关键字:Slots
- 自定义信号和槽位函数
- 自定义信号
- 写在类的signals下,返回值为void,可以有参数,支持重载,不需要实现
- 自定义槽函数
- 不能写在signals下,public slots[公共的槽函数] 5.4版本以后全局函数或者public都行
- 返回值也是void,需要声明,也需要实现,可以有参数,支持重载
- 然后用connect连接信号和槽
- 触发信号 emit
- 信号和槽重载,需要函数指针,明确指向函数的地址
- QString 转char * 使用.toUtf8().data()
- 信号和槽连接:触发这个信号才能触发槽
- 一个信号可以连接多个槽
- 多个信号也可以连接同一个槽函数
- 信号和槽的参数和类型必须对应
- 信号的参数个数可以多于槽的参数个数
- 信号和信号连接 触发一个信号也能触发另外一个信号
- 断开信号 disconnect(参数一样)
- 自定义信号