zoukankan      html  css  js  c++  java
  • 模态对话框与非模态窗口

    模态对话框就是在没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目时弹出的对话框。

    #include "dialog.h"
    #include "ui_dialog.h"
    Dialog::Dialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Dialog)
    {
        ui->setupUi(this);
        QDialog dialog;
        dialog.setWindowTitle("模态对话框");
        dialog.exec();
    }
    在.cpp文件中建立个对象,之后加以.exec();进入消息循坏。这就是模态对话框了。
    其实使用show()函数也可以建立模态对话框,只须在其前面使用setModal()函数即可。
        QDialog *dialog2 = new QDialog();
        dialog2.setModal(true);
        dialog2.show();
    这样主窗口也是会展现出来了。与setM欧大力()函数相似的还有一个setWindowModality()函数,它有一个参数来设置模态对话框要阻塞的窗口类型,可以是
    Qt::NonModal(不阻塞任何窗口,就是非模态)、Qt::WindowModal(阻塞它的父窗口、所有祖先窗口以及他们的子窗口)或Qt::ApplicationModal(阻塞整个应用程序的所有).
    而setModal()函数默认设置的是Qt::ApplicationModal。
    非模态窗口就是即可以交互,也可以与同一程序中的其他窗口交互。默认的就是非模态。
    dialog2->setModal(false);


  • 相关阅读:
    强迫症患者
    GG的匹配串
    漂洋过海来看你
    Fire or Retreat
    1011. A+B和C (15)
    1010. 一元多项式求导 (25)
    1009. 说反话 (20)
    1008. 数组元素循环右移问题 (20)
    1007. 素数对猜想 (20)
    1006. 换个格式输出整数 (15)
  • 原文地址:https://www.cnblogs.com/qq376142178/p/12400705.html
Copyright © 2011-2022 走看看