一、概念
跨平台的图形应用界面应用程序框架。
二、常用快捷键
快捷键 | 解释 |
F4 | 在对应的.cpp和.h之间快速切换 |
ctrl + b | 编译程序 |
ctrl + r | 运行程序 |
ctrl + shift + ↑ / ↓ | 向上 / 下移动选中的代码 |
ctrl + i | 自动对齐选中的代码 |
三、对象树
总结:父控件被析构,包含其中的子控件也会被自动析构。
顺序: 构造(先父后子) 析构(先子后父)
- QObject是以对象树的形式组织起来的。
- 当你创建一个QObject对象时,QObject构造函数接收一个QObject指针作为参数,这个参数就是parent,也就是父对象指针。
- 相当于,在创建QObject对象时,会提供一个QObject的父对象。刚刚创建的对象会自动添加到父对象的children()列表中。
- 当父对象析构时,children列表中的对象也会析构。(父对象不是继承意义的父类!)
四、常用组件
4.1 QWidget
创建空窗口。
函数名称 | 解释 |
setWindowTitle(String text) | 设置窗口标题内容 |
resize(int width, int height) | 重新设置窗口大小 |
setFixedSize(int width, int heigth) | 设置固定窗口大小 |
show() | 显示窗口 |
4.2 QPushButton
QPushButton属于QWidgets模块,需要包含头文件#include<QPushButton>。
函数名称 | 解释 |
QPushButton(String text, QWidget* qw) | 构造方法,设置文本和父窗口 |
setText(String text) | 设置按钮文本内容 |
resize(int width, int height) | 设置按钮大小 |
move(int x, int y) | 设置按钮坐标 |
setParent(QWidget* qw) | 设置父窗口 |
show() | 独立窗口显示按钮(一般不这样使用) |
五、信号和槽
信号:触发事件的类型
槽:收到指定信号后的处理函数
5.1 连接方式
连接信号和槽采用connect函数。声明如下:
函数声明 | 解释 |
static connect(const QObject* sender, const char* signal, const QObject* receiver, const char* slot, Qt::ConnectionType type = Qt::AutoConnection); | 第一个参数sender:发送信号的部件指针 第二个参数signal:信号的类型 第三个参数receiver:信号的接收者 第四个参数slot:槽,也就是处理函数的名称(指针) |
示例如下:(对一个退出按钮设置退出窗口槽)
QWidget *w = new QWidget;//窗口
QPushButton *btn = new QPushButton("退出按钮", w);//按钮connect(btn, &QPushButton::clicked, w, &QWidget::close);
5.2 自定义信号
在类中声明signals:,并将信号写入其中。
(信号只写声明,不写实现)
(信号返回值void)
(信号可以重载)
5.2.1 触发信号
触发信号采用emit关键字,举例如下:
//触发btn组件的sign01信号
emit btn->sign01();
5.3 自定义槽
在类中声明public slots:,并将槽写入其中。
(槽必须 声明 + 实现)
(槽返回值void)
(槽可以重载)