创建简单的模态和非模态窗口

        利用windows创建模态和非模态子窗口,首先先了解一下模态和非模态的区别:


     模态窗口:在点击父窗口某一事件后,弹出一个子窗口,若子窗口存在,就无法对父窗口操作,直至子窗口消失.

    非模态:弹出的子窗口和父窗口可同时操作。




   1.非模态:

mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include

namespace Ui {
    class MyWidget;
}

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    explicit MyWidget(QWidget *parent = 0);
    ~MyWidget();

private:
    Ui::MyWidget *ui;
public slots:
    void showChildDialog();


};

#endif // MYWIDGET_H


mywidget.cpp

#include "mywidget.h"
#include "ui_mywidget.h"
#include   //包含头文件

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    connect(ui->showChildButton, SIGNAL(clicked()),
            this, SLOT(showChildDialog()));
}

MyWidget::~MyWidget()
{
    delete ui;
}

void MyWidget::showChildDialog()
{
    QDialog *dialog = new QDialog(this);
    dialog->show();
}


main.cpp

#include
#include "mywidget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();

    return a.exec();
}






2.模态窗口:


你可能感兴趣的:(创建简单的模态和非模态窗口)