QT-- 模态对话框与非模态对话框

1.设计主窗体
这里写图片描述

2.弹出窗体
这里写图片描述

3.弹出窗体的类的实现

.h

#include <QWidget>
#include "QDialog.h"
#include "ui_QtDialogToShow.h"

class QtDialogToShow : public QDialog
{
    Q_OBJECT

public:
    QtDialogToShow(QWidget *parent = Q_NULLPTR);
    ~QtDialogToShow();

private:
    Ui::QtDialogToShow ui;
};



#include <QtWidgets/QMainWindow>
#include "ui_QtDialog.h"
#include "ui_QtDialogToShow.h"
#include "QtDialogToShow.h"

class QtDialog : public QMainWindow
{
    Q_OBJECT

public:
    QtDialog(QWidget *parent = Q_NULLPTR);

public:
    void init();

private:
    Ui::QtDialogClass ui;

    QtDialogToShow *mydlg;

private slots:
    void showDialog();

};

.cpp

#include "QtDialogToShow.h"

QtDialogToShow::QtDialogToShow(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);
}

QtDialogToShow::~QtDialogToShow()
{
}


#include "QtDialog.h"
#include "QMessageBox"

QtDialog::QtDialog(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    init();
}

void QtDialog::init()
{
    connect(ui.pushButtonShowDialog, SIGNAL(clicked()), this, SLOT(showDialog()));
}

void QtDialog::showDialog()
{
    mydlg = new QtDialogToShow(this);
    mydlg->setModal(true);
    mydlg->show();
}

4.主要函数

mydlg = new QtDialogToShow(this);
    mydlg->setModal(true);
    mydlg->show();

true为模态,false为非模态。

猜你喜欢

转载自blog.csdn.net/yifanmoon/article/details/80453403