Qt学习笔记
目录
Qt简介
1. 跨平台图形界面引擎
2. 优点
- 跨平台
- 接口简单容易上手
- 一定程度上简化了内存回收
3. 版本
- 商业化
- 开源
4. 成功案例
- Linux桌面环境KDE
- 谷歌地图
- VLC多媒体播放器
创建Qt项目
- 点击创建项目后. 选择项目路径以及给项目起名称
- 名称: 不能有中文, 不能有空格
- 路径: 不能有中文路径
- 默认创建有窗口类, Widget, 基类有三种选择: QWidget, QMainWindow, QDebug
main函数
- QAppliacation a应用程序对象, 有且仅有一个
- Widget w实例化窗口对象
- w.show() 调用show()函数显示窗口
- return a.exe() 让应用程序对象进入消息循环机制中, 代码阻塞到当前行
按钮控件常用API
- 创建QPushButton *btn = new QPushButton;
- 设置父类 setParent(this)
- 设置文本 setText("文本");
- 设置位置 move(width, height)
- 重新指定窗口大小 resize()
- 设置窗口的标题 setWindowTitle()
- 设置窗口固定大小 setFixedSize()
对象树
- 当创建的对象在堆区时候, 如果指定的父类是QObject派生下来的类或者QObject子类派生下来的类, 可以不用管理释放的操作, 将对象会放入到对象树中
- 一定程度上简化了内存回收机制
Qt中的坐标系
- 左上角为0, 0点
- x以右为正方向
- y以下为正方向
信号和槽
1. 连接函数: connect
- 参数1 信号的发送者
- 参数2 发送的信号(函数的地址)
- 参数3 信号的接收者
- 参数4 处理的槽函数(函数的地址)
2. 松散耦合
- connect(btn, &QPushButton::click, this. &QWidget::click)
自定义信号和槽
1. 自定义信号
- 写到signals下
- 返回void
- 需要声明, 不需要实现
- 可以有参数, 可以重载
2. 自定义槽函数
- 返回void
- 需要声明, 也需要实现
- 可以有参数, 可以重载
- 写到public slot下, 或者public或者全局函数
3. 触发自定义的信号
- emit自定义信号
4. 当自定义信号和槽出现重载
-
需要利用函数指针 明确指向函数的地址
-
void (Teacher::*teacherSignal)(QString) = &Teacher::hungry;
-
QString转成char*
- .ToUtf8() 转为 QByteArray
- .Data() 转为 Char*
默默地一点点变强,细节决定成败