QT学习之路三(模态和非模态对话框)
2017-02-14 15:32
232 查看
Qt中QDialog类是所有对话框的基类,对话框窗口是一个经常用来完成一个短小任务和用户进行简单交互的顶层窗口。对话框被分为两类模态的和非模态的。
模态对话框就是没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目是弹出的对话框。而对于非模态对话框,既可以和它进行交互,也可以与同一程序中的其他窗口交互。
模态对话框就是没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目是弹出的对话框。而对于非模态对话框,既可以和它进行交互,也可以与同一程序中的其他窗口交互。
#ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> namespace Ui { class MyWidget; } class MyWidget : public QWidget { Q_OBJECT public: explicit MyWidget(QWidget *parent = 0); ~MyWidget(); private: Ui::MyWidget *ui; }; #endif // MYWIDGET_H
#include "mywidget.h" //#include "ui_mywidget.h" #include <QDialog> 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 <QtGui/QApplication> #include "mywidget.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; w.show(); return a.exec(); }
相关文章推荐
- Qt5下通过CMake创建CTK插件的步骤
- QT学习笔记
- ubuntu下Qt Creator使用valgrind检测内存泄漏
- 首次安装Qt后,创建项目时出现“No valid kits found” 的解决办法
- 给Qt应用添加外部库文件
- 好的Qt学习资料
- (二十六)Qt容器之顺序容器
- Qt5.7中使用MySQL Driver
- 2.3 使用Qt设计师来创建对话框
- Qt:通过鼠标拖拽,来移动无边框窗体
- Qt实战开发-仪表盘制作
- 关于pyqt4关闭窗口报错的解决方法
- Log4Qt创建每日滚动日志
- emqttd安装
- qt核心已转储
- anconda无法plot问题的解决:更新qt
- Qt学习笔记-安装phonon模块
- Qt构建套件路径手动设置
- MQTT协议
- PyQt:eg4