「QT」窗口类 之 QWidget 窗口基类
✨博客主页 | ||
---|---|---|
何曾参静谧的博客 | ||
📌文章专栏 | ||
「QT」QT5程序设计 | ||
📚全部专栏 | ||
「Win」Windows程序设计 | 「IDE」集成开发环境 | 「UG/NX」BlockUI集合 |
「C/C++」C/C++程序设计 | 「DSA」数据结构与算法 | 「UG/NX」NX二次开发 |
「QT」QT5程序设计 | 「File」数据文件格式 | 「UG/NX」NX定制开发 |
「Py」Python程序设计 | 「Math」探秘数学世界 | 「PK」Parasolid函数说明 |
目录
- Qt中QWidget类详解(基于Qt 5.15版本)
- 一、类的引言
- 二、使用范围
- 三、类的头文件
- 四、类的注意事项
- 五、类的继承
- 六、类的构造介绍
- 七、公有函数介绍
- 八、Static函数介绍
- 九、运算符重载
- 十、详细代码举例
Qt中QWidget类详解(基于Qt 5.15版本)
一、类的引言
QWidget类是Qt框架中的一个核心类,用于创建图形用户界面(GUI)应用程序的基本可视化元素。它是所有窗口组件类的父类,每个窗口组件都是一个QWidget。QWidget类提供了创建和管理窗口部件所需的各种功能,是构建Qt GUI应用程序的基石。
二、使用范围
QWidget类可以创建和管理各种窗口和部件,如主窗口、对话框、按钮、文本框、列表框等。同时,QWidget还支持部件的布局管理,可以方便地调整部件的位置和大小,实现复杂的界面布局。此外,QWidget类具有强大的事件处理能力,可以接收并处理各种用户输入事件,如鼠标点击、键盘输入、鼠标移动等。
三、类的头文件
在使用QWidget类时,需要包含其头文件:
#include <QWidget>
四、类的注意事项
- QWidget类对象常用作父组件或顶级组件使用。
- QWidget提供了一套完整的窗口系统,包括窗口管理、事件处理、绘图等功能。
- 不要在moveEvent或resizeEvent两个事件处理函数中设置几何参数,否则将导致无限循环。
五、类的继承
QWidget类继承自QObject类,因此具有QObject类的所有功能和特性,如信号与槽机制、对象树结构等。QWidget类是所有Qt GUI组件的基类,包括窗口、按钮、文本框等。
六、类的构造介绍
QWidget类的构造函数如下:
QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
其中,参数parent指向父窗口,如果这个参数为nullptr,则窗口就成为一个顶级窗口。参数f是构造窗口的标志,主要用于控制窗口的类型和外观等。
七、公有函数介绍
QWidget类提供了丰富的公有函数来管理和操作窗口部件,包括:
-
窗口管理:
setGeometry(int x, int y, int w, int h)
:设置窗口的几何信息(位置和尺寸信息),不包括边框。move(int x, int y)
:移动窗口,重新设置窗口的位置。resize(int w, int h)
:重新设置窗口的尺寸信息。setWindowTitle(const QString &title)
:设置窗口的标题。setWindowIcon(const QIcon &icon)
:设置窗口的图标。
-
事件处理:
close()
:关闭当前窗口。hide()
:隐藏当前窗口。show()
:显示当前窗口及其子窗口。
-
绘图功能:
paintEvent(QPaintEvent *event)
:重写此函数以实现自定义绘制逻辑。
-
子控件管理:
setParent(QWidget *parent)
:给当前窗口设置父对象。parentWidget()
:获取当前窗口的父对象。
八、Static函数介绍
QWidget类还提供了一些静态函数,如:
createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
:创建一个窗口容器。find(WId id)
:根据窗口ID查找窗口。setTabOrder(QWidget *first, QWidget *second)
:设置两个控件之间的Tab键顺序。
九、运算符重载
QWidget类没有直接进行运算符重载,但Qt框架中的许多其他类(如QPoint、QSize等)都进行了运算符重载,以提供更方便的操作。
十、详细代码举例
以下是一个简单的QWidget使用示例,展示了如何创建一个独立的QWidget窗口,并设置其标题和样式:
#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *widget = new QWidget();
widget->setAttribute(Qt::WA_DeleteOnClose, true); // 关闭窗口时自动删除对象
widget->setWindowTitle("QWidget Example");
widget->setStyleSheet("background-color: rgb(255, 0, 0); border: 2px solid black; border-radius: 10px;");
widget->setGeometry(320, 150, 250, 220); // 设置窗口位置和大小
widget->show(); // 显示窗口
return app.exec();
}
在这个示例中,我们首先创建了一个QApplication对象,这是每个Qt GUI应用程序的入口点。然后,我们创建了一个QWidget对象,并设置了其标题、样式、位置和大小。最后,我们调用show()
函数来显示窗口。
QWidget类是Qt GUI应用程序开发中的核心类之一,通过掌握其使用方法和特性,开发者可以高效地构建出美观、易用且具有高度交互性的用户界面。