QT的基础知识介绍
扫描二维码
随时随地手机看文章
Qt类的结构:
QT按功能分模块
core模块:
所有的其它模块都依赖此模块,默认加载
此模块常用的类:
容器类: QString
QByteArray QList QLinkedList
QVector
几何类: QPoint
QSize QRect
文件类: QFile
QFileInfo QDir
gui模块:
包含了开发图形用户界面程序所需的功能,默认加载
此模块常用的类:
QColor
QFont QImage
QPixmap QIcon
QCursor
widgets模块:提供了一个 用于创建典型桌面应用程序的 UI元素的 集合
窗体类:
QWidget
最基本的窗体类
QMainWindow
主窗体类,包括菜单、工具栏、状态栏、[停靠窗口]
QDialog
对话框窗体类,模态对话框和非模态对话框
控件:显示控件、按钮、输入控件、容器、布局、表格...
sql模块:
network模块:
QObject QPaintDevice
--------------------
|
QWidget
|
--------------------------------------
| |
|
QMainWindow
QDialog 控件(如标签、按钮...)
QObject
connect()
tr()
QPaintDevice
所有的可视化控件都是绘制设备
QWidget--负责可视化控件的常规属性和基本事件
常规属性:
几何属性:位置、大小
图标、光标、标题
基本事件:
鼠标事件
键盘事件
绘制事件
----------------------------------------------
布局:Layout
就是把各个控件放在合适的位置,占据适当大小的空间
1.手动布局
move() resize()
2.布局器布局
QLayout
|-QBoxLayout
|-QHBoxLayout
水平布局
|-QVBoxLayout
垂直布局
addWidget(QWidget*)//在布局中添加 控件
addLayout(QLayout*)//在布局中添加 布局
|-QGridLayout
栅格布局
void addWidget(QWidget * widget, //要添加的控件
int fromRow, //放到哪一行
int fromColumn, //放到哪一列
int rowSpan, //占几行
int columnSpan, //占几列
Qt::Alignment alignment = 0//对齐 方式
);
|-QFormLayout
表单布局
3.可视化布局
qt designer 利用Qt设计器
信号和槽:Signals & Slots
信号和槽是一种高级接口,是QT自定义的一种通信机制,独立于C++,
应用于对象之间的通信,是QT的核心特性,也是QT区别于其它工具包的重要地方。
所有的QObject或其派生类(如QWidget)都包含信号和槽。
信号:就是个公有函数,由MOC实现,我们不需要实现,只要声明即可,返回值通常是void
当对象的内部状态发生改变,信号就由该对象发射(emit)出去
只有定义过该信号的类及其派生类才能发射该信号
槽: 是普通的C++成员函数,可被正常调用,唯一的特性就是可以和信号相关联
有访问权限的
当信号被发射时,与其关联的槽函数立即被执行。
信号与槽的关联:
connect(sender,
//信号的发出者
SIGNAL(signals),
//发出了什么信号
receiver,
//信号的接收者
SLOT(slots)
//接收到信号后要执行的功能
);
信号和槽还可以带参数,但信号和槽的参数要一致
一个信号可以连接多个槽
多个信号可以连接一个槽