文章目录
- 黑马QtDay1学习笔记
- 1 Qt简介
- 2 Qt项目创建
- 2.1 项目名称 不能有空格和中文
- 2.2 项目路径不能有中文路径
- 2.3 创建窗口三大基类
- 2.4 Main函数中
- 2.5 .pro文件
- 3 QPushButton按钮
- 4 Qt中的对象树
- 5 Qt中的坐标系
- 6 Qt中信号和槽基本使用
- 7 自定义信号和槽
- 7.1 自定义信号 写在 signals下
- 7.2 自定义槽函数 写在 public 或者全局函数 或者 public slot 或者lambda
- 7.3 当信号和槽发生重载时候,需要利用函数指针明确指出函数地址
- 7.4 将QString 转为 char *
- 8 信号和槽拓展
- 9 Qt4版本信号和槽写法
- 10 Lambda表达式
- 11Qt信号和槽总结
黑马QtDay1学习笔记
1 Qt简介
1.1 发展史
2 Qt项目创建
2.1 项目名称 不能有空格和中文
2.2 项目路径不能有中文路径
2.3 创建窗口三大基类
2.3.1 QWidget类是所有用户界面对象的基类。
2.3.2 QMainWindow提供了一个主应用程序窗口
2.3.3 QDialog 简介:对话框:在主窗口中操作,有可能触发某一个行为动作,会弹出一个新的对话窗口,解决一个临时性的会话,在对话窗口中执行某一个功能。
2.4 Main函数中
2.4.1 QApplication a 应用程序对象 在Qt中 有且仅有一个
2.4.2 MyWidget w 窗口对象
2.4.3 w.show() 函数显示窗口
2.4.4 return a.exec()进入消息循环机制,阻塞功能
2.5 .pro文件
2.5.1 QT += core gui //Qt包含的模块
2.5.2 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于4版本 加入 widgets 模块
2.5.3 TARGET = 01_QtFirst //生成.exe程序的名称
2.5.4 TEMPLATE = app //模板 应用程序模板
2.5.5 SOURCES += main.cpp\ //源文件
2.5.6 mywidget.cpp
2.5.7 HEADERS += mywidget.h //头文件
3 QPushButton按钮
3.1 QPushButton * btn = new QPushButton; 创建按钮对象
3.2 btn - >setParent(this) 设置父亲
3.3 设置显示文本 setText
3.4 移动 move
3.5 重置窗口大小 resize
3.6 设置固定窗口大小 setFixedSize
3.7 设置窗口标题 setWindowTitle
4 Qt中的对象树
4.1 一定程度上简化了内存回收机制
4.2 当创建的对象 指定的父亲是由QObject或者Object派生的类时候,这个对象被加载到对象树上,当窗口关闭掉时候,树上的对象也都会被释放掉
5 Qt中的坐标系
5.1 x以右侧为正
5.2 y以下侧为正
5.3 左上角是 0,0点
6 Qt中信号和槽基本使用
6.1 需求:点击按钮关闭窗口
6.2 连接 connect ( 信号的发送者,发送的信号,信号的接受者,处理的槽函数)
connect( myBtn , &MyPushButton::clicked ,this, &MyWidget::close);
6.3 测试
7 自定义信号和槽
7.1 自定义信号 写在 signals下
7.1.1 返回值是void
7.1.2 只需要声明 不需要实现
7.1.3 可以有参数 可以发生重载
7.2 自定义槽函数 写在 public 或者全局函数 或者 public slot 或者lambda
7.2.1 返回值是void
7.2.2 需要声明 也需要有实现
7.2.3 可以有参数 可以发生重载
7.3 当信号和槽发生重载时候,需要利用函数指针明确指出函数地址
7.3.1 void(Teacher:: *teacherSignal)(QString) = &Teacher::hungry;
7.4 将QString 转为 char *
7.4.1 .toUtf8()转为 QByteArray数据类型
7.4.2 .data() 转为 char * 类型
8 信号和槽拓展
8.1 信号是可以连接信号
8.2 可以断开信号和槽 disconnect
8.3 一个信号可以响应多个槽函数
8.4 多个信号可以连接同一个槽函数
8.5 信号和槽函数的参数类型 必须一一对应,信号的参数个数 可以多余槽函数的参数个数,反之不可以 , 参数类型要一一对应
9 Qt4版本信号和槽写法
9.1 优势 :参数直观
9.2 劣势 :参数类型不做匹配检测
9.3 Qt4本质 SIGNAL(“hungry(int)”)SLOT(“treat(QString)”)
10 Lambda表达式
10.2 []中可以加 = & a &a … 推荐 使用 =
10.3 () 形参列表
10.4 {} 实现体
10.5 mutable可以修改按值传递进来的拷贝
10.6 -> type 代表lambda表达式返回值类型