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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM