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按功能分模块
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) //接收到信号后要执行的功能
);
信号和槽还可以带参数,但信号和槽的参数要一致
一个信号可以连接多个槽
多个信号可以连接一个槽