文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。
笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888
文章目录
Qt中主要的基类
QOblect 类
作用以及功能:
- 是Qt对象模型的核心。
- 是几乎所有Qt类和所有部件(Widget)类的基线(即它们都继承于QObject类)。
- 提供了信号-槽的通信机制。
- 提供了事件处理机制。
- 实现了内存管理的功能。
QObject内存管理机制:
Qt有一套自己的内存管理机制:父子对象管理机制。
处理流程:
- 每一个QObject对象都可以有一个指向父亲的参数。
- 孩子会通知他的父亲自己的存在,父亲会把它加入到自己的孩子列表中。
- 所有子对象的内存管理都转移给了父对象。
- 当一个父对象被删除,它的全部子对象也同样会被删除。
QObject *parent = new QObject();
QObject *child1 = new QObject(parent);
QObject *child2 = new QObject(parent);
QObject *child1_1 = new QObject(child1);
QObject *child1_2 = new QObject(child1);
delete child1; //删除其中一个子对象,此时一起被删除有 child1,child1_1, child1_2三个对象
delete parent; //删除父对象,此时父对象,以及其下的所有子对象都会被删除。
继承关系图:
QApplication类
作用以及功能:
QApplication类负责GUI应用程序的控制流和主要的设置,包括:
- QApplication是QObject的子类。
- 主事件循环体,负责处理和调度所有来自系统的事件。
- 处理应用程序的开始、结束。
- 系统和应用程序方面的总设置,例如设置编码方式等。
Qt应用程序中,首先要创建一个QApplication对象,不管有多少个窗口,
QApplication对象只能有一个(通常会在main函数中进行创建),而且必须在其他对象之前创建;之后就可以利用全局指针qApp访问QApplication对象。
退出应用程序可以调用继承自QCoreApplication类的quit或exit函数
- quit ():告诉应用程序退出,并返回0(表示成功)
- exit(0):同quit()
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
return a.exec();
}
QWidget 类
作用以及功能:
- 通常作为应用程序(Application)的主界面;也可以作为一个容器,来包含(显示)其他的图形界面组件。
- QWidget类是所有用户界面对象的基类,是QObject类的子类,继承了QObject类的属性。
- 窗口部件从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己,按钮(Button)、菜单(menu)、滚动条(scroll bars)和框架(frame)都是窗口部件。
- 窗口部件可以包含其它的窗口部件。例如,一个应用程序界面通常就是一个包含了QMenuBar,一些QToolBar,一个QStatusBar和其它的一些部件的窗口。
- 绝大多数应用程序使用一个QMainWindow或者一个QDialog, QWidget作为程序界面,但是Qt允许任何窗口部件成为窗口。
- 当窗口部件被创建的时候,它总是隐藏的,必须调用show()或者exec()函数来使它可见。
- QWidget类有很多成员函数,但一般不直接使用,而通过子类继承来使用其函数功能。
Qt中的常用库或者类
QtCore 库
头文件:#include <QtCore>
作 用:提供了Qt编程时的一些常用的基础工具类。
下面介绍部分常用类,其他不常用的这里不再一 一介绍,具体使用时可以查阅Qt开发文档。
基本数据类型,例如:QString、QByteArray。
基本数据结构,例如:QList、QVector、QMap。
输入输出类, 例如:QTextStream、QFile。
多线程编程用到的类,例如:QThread、QWaitCondition。
QtGUI 库
作 用:主要是包含一些图形界面组件。
头文件:#include <QtGui>
窗口部件类,例如:QWidget,QLabel、QPushButton等。
布局类,例如:QVBoxLayout、 QHBoxLayout、QGridLayout等。
主窗口类,QMainWindow、QMenu等。
绘图类,例如:QPainter、QPen、QBrush等。
基本对话框类,例如:QFileDialog、QPrintDialog等。
网络和数据库相关类
QtNetwork,Qt网络库,包括了网络编程常用的类:
QTcpSocket,QUdpSocket,QHttp,QFtp
QtSql,Qt数据库类,包括了数据库编程常用类
QSqlQuery, QSqlDatabase
Qt基本对话框
文件对话框(QFileDialog)
功 能:标准文件对话框。
详细介绍,参见文章《Qt 编程 —— 文件对话框(QFileDialog)的使用》。
文件对话框(QColorDialog)
功 能:标准颜色对话框。
详细介绍,参见文章《Qt 编程 —— 颜色对话框(QColorDialog)的使用》。
文件对话框(QFontDialog)
功 能:标准字体对话框。
详细介绍,参见文章《Qt 编程 —— 字体对话框(QFontDialog)的使用》。
文件对话框(QInputDialog)
功 能:标准输入对话框。
详细介绍,参见文章《Qt 编程 —— 输入对话框(QInputDialog)的使用》。
文件对话框(QMessageDialog)
功 能:标准消息对话框。
详细介绍,参见文章《Qt编程 ——消息对话框(QMessageBox)的使用》。
基本图形界面组件的应用
基本图形界面组件概述
Qt 提供了大量的基本图形界面组件, 用来进行应用程序的图形界面设计,常用的基本图形界面组件如下:
- 按钮( QPushButton)
- 标签(静态文本框)( QLabel)
- 行编辑框(QLineEdit)
- 复选框( QCheckBox)
- 单选按钮( QRadioButton)
- 分组框( QGroupBox)
- 列表部件框( QListWidget)
- 组合框( QComboBox)
- 自旋框( QSpinBox)
- 滑动条( QSlider)
- 进度条( QProgressBar)