自学内容网 自学内容网

「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版本)

一、类的引言

QWidget类是Qt框架中的一个核心类,用于创建图形用户界面(GUI)应用程序的基本可视化元素。它是所有窗口组件类的父类,每个窗口组件都是一个QWidget。QWidget类提供了创建和管理窗口部件所需的各种功能,是构建Qt GUI应用程序的基石。

二、使用范围

QWidget类可以创建和管理各种窗口和部件,如主窗口、对话框、按钮、文本框、列表框等。同时,QWidget还支持部件的布局管理,可以方便地调整部件的位置和大小,实现复杂的界面布局。此外,QWidget类具有强大的事件处理能力,可以接收并处理各种用户输入事件,如鼠标点击、键盘输入、鼠标移动等。

三、类的头文件

在使用QWidget类时,需要包含其头文件:

#include <QWidget>

四、类的注意事项

  1. QWidget类对象常用作父组件或顶级组件使用。
  2. QWidget提供了一套完整的窗口系统,包括窗口管理、事件处理、绘图等功能。
  3. 不要在moveEvent或resizeEvent两个事件处理函数中设置几何参数,否则将导致无限循环。

五、类的继承

QWidget类继承自QObject类,因此具有QObject类的所有功能和特性,如信号与槽机制、对象树结构等。QWidget类是所有Qt GUI组件的基类,包括窗口、按钮、文本框等。

六、类的构造介绍

QWidget类的构造函数如下:

QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());

其中,参数parent指向父窗口,如果这个参数为nullptr,则窗口就成为一个顶级窗口。参数f是构造窗口的标志,主要用于控制窗口的类型和外观等。

七、公有函数介绍

QWidget类提供了丰富的公有函数来管理和操作窗口部件,包括:

  1. 窗口管理

    • 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):设置窗口的图标。
  2. 事件处理

    • close():关闭当前窗口。
    • hide():隐藏当前窗口。
    • show():显示当前窗口及其子窗口。
  3. 绘图功能

    • paintEvent(QPaintEvent *event):重写此函数以实现自定义绘制逻辑。
  4. 子控件管理

    • 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应用程序开发中的核心类之一,通过掌握其使用方法和特性,开发者可以高效地构建出美观、易用且具有高度交互性的用户界面。


在这里插入图片描述


原文地址:https://blog.csdn.net/qq_49443542/article/details/143766456

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!