Qt学习笔记(上)
1. Qt简介
1.1 跨平台图形界面引擎
1.2 历史
==1991 奇趣科技==
1.3 优点
==跨平台==
==接口简单,容易上手==
==一定程度上简化了内存回收==
1.4 版本
==商业版==
==开源版==
1.5 成功案例
==Linux桌面环境 KDE==
==谷歌地图==
==VLC多媒体播放器==
2. 创建第一个Qt程序
2.1创建过程
==点击创建项目后,选择项目路径以及给项目起名称==
==名称 - 不能有中文不能有空格==
==路径 - 不能有中文路径==
==默认创建有窗口类,myWidget,基类有三种选择: QWidget 、QMainWindow、QDialog==
2.2 main函数
==QApplication a 应用程序对象,有且仅有一个==
==myWidget w;实例化窗口对象==
==w.show()调用show函数 显示窗口==
==return a.exec() 让应用程序对象进入消息循环机制中,代码阻塞到当前行==
3. 按钮控件常用API
==创建 QPushButton * btn = new QPushButton==
==设置父亲 setParent(this)==
==设置文本 setText(“文字”)==
==设置位置 move(宽,高)==
==重新指定窗口大小 resize==
==设置窗口标题 setWindowTitle==
==设置窗口固定大小 setFixedSize==
4. 对象树
==当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。==
==一定程度上简化了内存回收机制==
5. Qt中的坐标系
==左上角为 0 , 0 点==
==x以右为正方向==
==y以下为正方向==
6. 信号和槽
==连接函数 :connect==
6.1 参数
==参数1 信号的发送者==
==参数2 发送的信号(函数地址)==
==参数3 信号的接受者==
==参数4 处理的槽函数 (函数的地址)==
6.2 松散耦合
6.3 实现 点击按钮 关闭窗口的案例
6.4 connect(btn , &QPushButton::click , this , &QWidget::close );
7. 自定义信号和槽
7.1 自定义信号
==写到 signals下==
==返回 void==
==需要声明,不需要实现==
==可以有参数 ,可以重载==
7.2 自定义槽函数
==返回void==
==需要声明 ,也需要实现==
==可以有参数 ,可以重载==
==写到 public slot下 或者public 或者全局函数==
7.3 触发自定义的信号
==emit 自定义信号==
7.4 案例-下课后,老师触发饿了信号,学生响应信号,请客吃饭
8 当自定义信号和槽出现重载
==需要利用函数指针 明确指向函数的地址==
==void( Teacher:: * tSignal )( QString ) = &Teacher::hungry;==
8.1 QString 转成 char *
==ToUtf8() 转为 QByteArray==
==Data() 转为 Char *==
8.2 信号可以连接信号
8.3 断开信号 disconnect
9 拓展
==信号可以连接信号==
==一个信号可以连接多个槽函数==
==多个信号可以连接同一个槽函数==
==信号和槽函数的参数 必须类型一一对应==
==信号和槽的参数个数 是不是要一致?信号的参数个数 可以多余槽函数的参数个数==
==信号槽可以断开连接 disconnect==
10 Qt4版本写法
==connect( 信号的发送者, 发送的信号SIGNAL( 信号) ,信号接受者, 槽函数SLOT(槽函数) )==
==优点 参数直观==
==缺点 编译器不会检测参数类型==
11 Lambda表达式
11.1 []标识符 匿名函数
==值传递==
==& 引用传递==