对话框(1)
来源:互联网 发布:量子网络代替互联网 编辑:程序博客网 时间:2024/06/01 09:33
参考文献:https://www.devbean.net/2012/09/qt-study-road-2-dialogs-intro/
对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。尽管 Ribbon 界面的出现在一定程度上减少了对话框的使用几率。
Qt 中使用QDialog类实现对话框。就像主窗口一样,通常会设计一个类继承QDialog。
QDialog(及其子类,以及所有Qt::Dialog类型的类)的对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent 的中心)。
顶层窗口与非顶层窗口的区别在于,顶层窗口在任务栏会有自己的位置,而非顶层窗口则会共享其父组件的位置。
Qt 支持模态对话框和非模态对话框。其中,Qt 有两种级别的模态对话框:应用程序级别的模态和窗口级别的模态,默认是应用程序级别的模态。
应用程序级别的模态是指,当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口。
窗口级别的模态是指,该模态仅仅阻塞与对话框关联的窗口,但是依然允许用户与程序中其它窗口交互。
使用QDialog::open()实现窗口级别的模态对话框,
使用QDialog::exec()实现应用程序级别的模态对话框,
使用QDialog::show()实现非模态对话框。
#include <QtWidgets/QStatusBar>#include <QtWidgets/QToolBar>#include <QtWidgets/QSpinBox>#include <QtWidgets/QLayout> #include "mywindow.h"MyWindow::MyWindow(QWidget *parent) : QMainWindow(parent){ ui.setupUi(this); setWindowTitle(tr("Main Window")); //设置主窗口的标题 openAction = new QAction(QIcon("C:/Users/Administrator/Desktop/MyWindow/MyWindow/images/doc-open"), tr("&Open..."), this); openAction->setShortcuts(QKeySequence::Open); openAction->setStatusTip(tr("Open an existing file")); //setStatusTip()则实现了当用户鼠标滑过这个 action 时,会在主窗口下方的状态栏显示相应的提示。 connect(openAction, &QAction::triggered, this, &MyWindow::open); QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); QToolBar *toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); statusBar(); //状态栏}MyWindow::~MyWindow(){}void MyWindow::open(){ ////在栈上创建 ////QMessageBox::information(this, tr("Information"), tr("Open")); //QDialog dialog();由于我们没有设置对话框的 parent 指针,会看到在任务栏出现了对话框的位置 //QDialog dialog(this);设置对话框的 parent 指针,会看到在任务栏没有了对话框的位置 //dialog.setWindowTitle(tr("Hello, dialog!")); ////dialog.exec(); //模态 //dialog.show(); //非模态 一闪而过 ////在堆上创建 非模态 //QDialog *dialog = new QDialog; //dialog->setAttribute(Qt::WA_DeleteOnClose); //setAttribute()函数设置对话框关闭时,自动销毁非模态对话框。 //dialog->setWindowTitle(tr("Hello, dialog!")); //dialog->show(); //在堆上创建 模态 QDialog *dialog = new QDialog; dialog->deleteLater(); //销毁模态对话窗 dialog->setWindowTitle(tr("Hello, dialog!")); dialog->exec();}
阅读全文
0 0
- 对话框(1)
- MFC创建模态对话框和非模态对话框(1)
- 创建对话框资源(1)
- 对话框1
- 对话框(3)-文件对话框
- Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表对话框,自定义对话框,Activity对话框)
- 【转】第六章 对话框编程(1)
- 第7课对话框(1)
- Android _Android登录对话框实现(1)
- 孙鑫vc++ 7 对话框(1)
- MFC编程入门--对话框(1)
- Android自定义View(1):对话框-Dialog
- MFC创建属性对话框(1)
- windows 对话框程序实践(1)
- MFC学习笔记(1)--对话框
- QtCreator 对话框(二)QMessageBox(消息对话框),QProgressDialog (进度对话框),QErrorMessage(错误信息对话框),QWizardPage(向导对话框)
- QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框
- Android:对话框(12种:警告对话框&进度条对话框&日期对话框&时间对话框)
- 循环队列的顺序存储实现
- JavaScript中innerText和innerHTML的区别
- 卷积层上的滑动窗口(将全连接层转化为卷积层)
- 【蓝桥杯】【等额本金】
- es6笔记·····变量的解构赋值
- 对话框(1)
- fiddler进行弱网测试
- PHP面向对象(常用)
- java的native方法
- python之字符串格式化(format)
- 11.20第13节课
- MongoDB基本命令用法
- 利用 TensorFlow 实现排序和搜索算法
- 单链表实现队列链式存储