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后的窗口。