热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT学习之路三(模态和非模态对话框)

Qt中QDialog类是所有对话框的基类,对话框窗口是一个经常用来完成一个短小任务和用户进行简单交互的顶层窗口。对话框被分为两类模态的和非模态的。模态对话框就是没有关

  Qt中QDialog类是所有对话框的基类,对话框窗口是一个经常用来完成一个短小任务和用户进行简单交互的顶层窗口。对话框被分为两类模态的和非模态的。

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

#ifndef MYWIDGET_H
#define MYWIDGET_H#include namespace Ui {
class MyWidget;
}class MyWidget : public QWidget
{Q_OBJECTpublic:explicit MyWidget(QWidget *parent = 0);~MyWidget();private:Ui::MyWidget *ui;
};#endif // MYWIDGET_H


#include "mywidget.h"
//#include "ui_mywidget.h"
#include MyWidget::MyWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MyWidget)
{ui->setupUi(this);QDialog *dialog = new QDialog(this);//dialog->setModal(true);//dialog->show(); //模态 但是执行完后控制权限交给调用者dialog->exec(); //模态对话框 必须关闭才能开启下一个窗口//dialog->setWindowModality(Qt::NonModal); //Qt::NonModal 不阻塞任何窗口 非模态//dialog->setWindowModality(Qt::WindowModal); //Qt::WindowModal 阻塞其父窗口和所有祖先窗口以及他们的子窗口//dialog->setWindowModality(Qt::ApplicationModal);//Qt::ApplicationModal阻塞整个应用程序的所有窗口//dialog->setModal(); //默认设置的是Qt::ApplicationModal
}MyWidget::~MyWidget()
{delete ui;
}


#include
#include "mywidget.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);MyWidget w;w.show();return a.exec();
}





推荐阅读
author-avatar
LSG123418
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有