文章目录
- 第1章 认识Qt
- QMainWindow
- QWidget
- QDialog
- 第2章 信号和槽机制
- 信号函数SIGNAL:
- 槽函数SLOT:
- connect()
- 第4章 常用界面设计组件
- QString类
- 4.4时间日期与定时器
- 4.5 QComboBox
- 第7章 文件系统和文件读写
- QFile类
- QDir类
- QDir的一些公共接口函数
第1章 认识Qt
QMainWindow
QMainWindow是主窗口类
QWidget
QWidget是所有具有可视化界面类的积累,选择QWidget创建的界面对各种界面组件都可以支持。
QDialog
QDialog是对话框类,可以建立一个基于对话框的界面
第2章 信号和槽机制
信号函数SIGNAL:
信号函数,只需要定义不需要实现
槽函数SLOT:
需要实现
connect()
定义信号和槽:
- 信号和槽机制,是Qt的拓展,使程序员可以决定信号函数的调用目标
- 信号和槽只有Qt对象才能拥有(QObject类或QObject的子类才能定义信号和槽函数)
- 定义了信号和槽的Qt类,必须以 Q_OBJECT 宏开始,其内部是初始化信号和槽的环境
- 信号函数,定义在类的 signal 标识符保留字下,是Qt内部自己封装的功能,只有Qt Creator才识别,其他环境是不识别的,并且信号函数不需要实现,只需定义
- 槽函数,定义在类的 slot 标识符保留字下,也一样是Qt内部自己封装的,槽函数必须要实现
连接和调用:
- 连接信号和槽,使用 Object 类或 Object 子类的静态成员函数 connect 来连接信号和槽
- 发射(调用)信号函数,要使用 emit 保留字,emit 同样是Qt内部自己封装的,其他编译器并不能识别
注意事项:
- connect函数的第二个和第四个参数都是char类型,需要使用SIGNAL和SLOT宏将带有括号的函数名转换为char
信号和槽函数的参数个数最好保持一致,如果信号函数参数少于槽函数参数,那么程序会崩溃,因为槽不知道去哪取多出来的参数 - 信号函数可以和多个槽函数相连,当信号触发后,多个槽函数都会执行,但是哪一个优先执行,Qt并没有保障
一个槽函数可以被多个信号函数连接,这样多个信号会触发同一个槽函数 - 信号函数可以和信号函数连接,相当于一个传递者,两个信号都会调用同一个槽函数
- 信号和槽的参数有限制,限制比较多,比较明显的就是模版类对象是无法做参数的,如果需要传递比较特殊的数据类型,可以将数据先封装为结构体,然后调用 qRegisterMetaType<类型>(); 来注册结构体类型就可以通过信号和槽函数的参数传递了
总结:
- 信号和槽都在 QObecjt 类或子类下
- 三个处理宏 Q_OBJECT SIGNAL SLOT
- 三个保留字 signal slot emit
- 一个连接函数 QObject::connect
第4章 常用界面设计组件
QString类
4.4时间日期与定时器
QTime类 : 11:55:00
qDebug()<<"结束打印时间: end print time:"<<QTime::currentTime(); //结束打印时间: end print time: QTime("11:40:08.168")
QDate类 : 2022-06-22
QDateTime类 : 2022-06-22 11:55:00
4.5 QComboBox
QComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择。
第7章 文件系统和文件读写
QFile类
QDir类
QDir是进行目录操作的类,在创建QDir对象时传递一个目录字符串作为当前目录,然后QDir函数就可以针对当前目录或目录下的文件进行操作。
QDir的一些公共接口函数
函数原型 | 功能 |
boold exists() | 判断当前目录是否存在 |
bool mkdir(QString&dirName) | 在当前目录下创建一个名称为dirName的子目录 |
bool rmdir(QString&dirName) | 删除指定的目录dirName |
bool remove(QString&fileName) | 删除当前目录下的文件fileName |
bool rename(QString &oldName, QString &newName) | 将文件或目录oldName更名为newName |
void setPath(QString&path) | 设置QDir对象的当前目录 |
QDir可以使用相对路径或绝对路径指向一个文件。目录的路径可以通过path()函数返回,通过setPath()函数设置新路径。绝对路径使用absolutePath()函数返回,目录名可以使用dirName()函数获得,它通常返回绝对路径中的最后一个元素,如果QDir指向当前目录,则返回"."。目录的路径可以通过cd()和cdUP()函数改变。可以使用mkdir()函数创建目录,使用rename()函数改变目录名。
progress bar :进度条