Qt继承QWidget或者QWidget直接弹出窗口(非模态对话框)(对话框)

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 

class QTestWidget : public QWidget
{
    Q_OBJECT
public:
    explicit QTestWidget(QWidget *parent = nullptr);

signals:

public slots:
};

#endif // QTESTWIDGET_H

 

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

#include "qtestwidget.h"

QTestWidget::QTestWidget(QWidget *parent) : QWidget(parent)
{

}

 

调用显示该继承窗口

void Widget::on_pushButton_8_clicked()
{
    /*显示继承QWidget对象窗口*/
    QTestWidget *testWidget = new QTestWidget();
    testWidget->setWindowModality(Qt::NonModal);
    testWidget->setWindowTitle(tr("我是继承QWidget的窗口!"));
    testWidget->show();

    /*显示QWidget窗口*/
    QTestWidget *widget = new QTestWidget();
    widget->setWindowModality(Qt::NonModal);
    widget->setWindowTitle(tr("我是QWidget窗口!"));
    widget->show();
}

 

二、结果显示

Qt继承QWidget或者QWidget直接弹出窗口(非模态对话框)(对话框)_第1张图片

Qt继承QWidget或者QWidget直接弹出窗口(非模态对话框)(对话框)_第2张图片

 

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

 

 

参考内容:

https://blog.csdn.net/wadfji/article/details/54097418(参考:弹出QWidget窗口)

你可能感兴趣的:(Qt基础知识)