一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

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 2021-11-05 16:42  一杯清酒邀明月  阅读(2133)  评论(1编辑  收藏  举报