文章目录

  • 第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是对话框类,可以建立一个基于对话框的界面

qt6如何开发windows和android程序_信号和槽



第2章 信号和槽机制

信号函数SIGNAL:

信号函数,只需要定义不需要实现

槽函数SLOT:

需要实现

qt6如何开发windows和android程序_当前目录_02

connect()

qt6如何开发windows和android程序_信号和槽_03


qt6如何开发windows和android程序_qt_04


定义信号和槽:

  • 信号和槽机制,是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 :进度条