一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

QWidget是Qt中主流的窗口类,实现QWidget窗口弹出主要有三个步骤。

1.1实例一个窗口类对象QWidget *widget = new QWidget(NULL);

1.2调用函数函数QWidget::setWindowsModality(Qt::WindowModality windowModality)设置显示窗口类型,其中Qt::WindowModality windowModality取值如下:

Qt::NonModal 不阻塞(非模态对话框)

Qt::WindowModal 阻塞父窗口,所有祖先窗口及其子窗口(半模态对话框)(没特殊要求的话,一般用这个)

Qt::ApplicationModal 阻塞整个应用程序(模态对话框)

1.3调用函数QWidget::show()显示该函数

注意,上述步骤中,类QWidget的对象可以是QWidget,也可以是QWidget的继承类。下面将弹出一个QWigdet的关键代码添出。

一、核心代码
qtestwidget.h头文件(继承QWidget窗口类)

复制代码
#ifndef QTESTWIDGET_H
#define QTESTWIDGET_H
 
#include <QWidget>
 
class QTestWidget : public QWidget
{
    Q_OBJECT
public:
    explicit QTestWidget(QWidget *parent = nullptr);
 
signals:
 
public slots:
};
 
#endif // QTESTWIDGET_H
复制代码

qtestwidget.cpp源文件(继承QWidget窗口类)

复制代码
1 #include "qtestwidget.h"
2  
3 QTestWidget::QTestWidget(QWidget *parent) : QWidget(parent)
4 {
5  
6 }
复制代码

调用显示该继承窗口

复制代码
 1 void Widget::on_pushButton_8_clicked()
 2 {
 3     /*显示继承QWidget对象窗口*/
 4     QTestWidget *testWidget = new QTestWidget();
 5     testWidget->setWindowModality(Qt::NonModal);
 6     testWidget->setWindowTitle(tr("我是继承QWidget的窗口!"));
 7     testWidget->show();
 8  
 9     /*显示QWidget窗口*/
10     QTestWidget *widget = new QTestWidget();
11     widget->setWindowModality(Qt::NonModal);
12     widget->setWindowTitle(tr("我是QWidget窗口!"));
13     widget->show();
14 }
复制代码

二、结果显示

点击testWidget按钮后,弹出一个QWidget窗口和一个继承QWidget后的窗口。

posted on   一杯清酒邀明月  阅读(2661)  评论(1编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2020-11-05 Qt 解决:QWidget: Must construct a QApplication before a QWidget
2020-11-05 VTK 警告 QVTKWidget was deprecated for VTK 8.1 and will be removed in a future version.
2020-11-05 VTK8.0需要添加的初始化代码
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示