《Qt5.9 C++开发指南》

第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 :进度条

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员爱德华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值