Qt中的标准对话框之QMessageBox
1. Qt标准对话框
- Qt为开发者提供了一些可复用的对话框类型
- Qt提供的可复用对话框全部继承自QDialog类
- Qt中的对话框的使用方式和QDialog完全一致

2. 标准对话框的使用步骤
①定义对话框
DialogType dlg(this) ;
②设置对话框属性
dlg.setPropertyXXX(value);
③打开对话框(判断对话框返回值)
dlg.exec()==DialogType::value
④获取对话框数据
Type v = dlg.getDialogValue();
⑤处理对话框数据
3.消息对话框
①用于:为用户提示重要信息,强制用户进行选择
②消息对话框中的实用静态函数
①QMessageBox::question(…) //创建带有“是/否”按钮的消息框
②QMessageBox::information(…) //创建带有“确定”或“取消”按钮的消息框
③QMessageBox::warning(…) //创建一个警告对话框
④QMessageBox::critical(…) //创建一个严重错误对话框
⑤QMessageBox::about(…) //创建“关于”对话框
③上述静态成员函数的返回值
- 静态成员函数的返回值就是标准的按钮,
- 他们是枚举类型
- 可以使用这个返回值来判断用户点击了哪个按钮
4.实例
①一般步骤:
//1、构造消息对话框对象
QmessageBox msg(this);
//2、设置消息对话框的属性
msg.setWindowTitle("Window Title");
msg.setText("This is a detail message dialog!");
msg.setIcon(QMessageBox::Information);
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::YesToAll);
//3、读取对话框数据并根据返回值处理
if( msg.exec() == QMessageBox::Ok )
{
qDebug() << "Ok button is clicked!";
}
②实例演示
新建一个QWidget程序
widget.h
#ifndef WIDGET_H
#define WIDGET_H #include <QWidget>
#include <QPushButton> class Widget : public QWidget
{
Q_OBJECT
private:
QPushButton question_MsgBtn;
QPushButton infomation_MsgBtn;
QPushButton warning_MsgBtn;
QPushButton critical_MsgBtn;
QPushButton about_MsgBtn; private slots://定义为私有的槽函数,只有在类的内部可以访问
void question_Clicked(); //小技巧:单击函数名,同时按下Alt+Enter键 选择在widght中更添加定义可以直接编写槽函数
void infomation_Clicked();
void warning_Clicked();
void critical_Clicked();
void about_Clicked();
public:
Widget(QWidget *parent = 0);
~Widget();
}; #endif // WIDGET_H
widget.cpp
#include "widget.h"
#include <QMessageBox>
#include <QDebug> Widget::Widget(QWidget *parent)
: QWidget(parent),question_MsgBtn(this),infomation_MsgBtn(this),
warning_MsgBtn(this),critical_MsgBtn(this),about_MsgBtn(this)
{
question_MsgBtn.setText("question_MsgBtn Message Dialog");
question_MsgBtn.move(20, 20);
question_MsgBtn.resize(210, 30); infomation_MsgBtn.setText("infomation_MsgBtn Message Dialog");
infomation_MsgBtn.move(20, 70);
infomation_MsgBtn.resize(210, 30); warning_MsgBtn.setText("warning_MsgBtn Message Dialog");
warning_MsgBtn.move(20, 120);
warning_MsgBtn.resize(210, 30); critical_MsgBtn.setText("critical_MsgBtn Message Dialog");
critical_MsgBtn.move(20, 170);
critical_MsgBtn.resize(210, 30); about_MsgBtn.setText("about_MsgBtn Message Dialog");
about_MsgBtn.move(20,230);
about_MsgBtn.resize(210,30); resize(250, 290);
setFixedSize(250, 290); connect(&question_MsgBtn,SIGNAL(clicked()),this ,SLOT(question_Clicked()));
connect(&infomation_MsgBtn,SIGNAL(clicked()),this ,SLOT(infomation_Clicked()));
connect(&warning_MsgBtn,SIGNAL(clicked()),this ,SLOT(warning_Clicked()));
connect(&critical_MsgBtn,SIGNAL(clicked()),this ,SLOT(critical_Clicked()));
connect(&about_MsgBtn,SIGNAL(clicked()),this ,SLOT(about_Clicked()));
} Widget::~Widget()
{ } void Widget::question_Clicked()
{
QMessageBox msg(this); msg.setText("This is a detail message dialog!");
msg.setIcon(QMessageBox::Question);
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::YesToAll); switch(msg.exec()){
case (QMessageBox::Ok) : //判断哪个按键被按下
{
qDebug() << "Ok button is clicked!";
break;
} case (QMessageBox::Cancel) ://判断哪个按键被按下
{
qDebug() << "Cancel button is clicked!";
break;
} case QMessageBox::YesToAll : //判断哪个按键被按下
{
qDebug() << "YesToAll button is clicked!";
break;
} }
} void Widget::infomation_Clicked()
{
QMessageBox msg(this); msg.setText("This is infomation message dialog!");
msg.setIcon(QMessageBox::Information);
msg.setStandardButtons(QMessageBox::Help | QMessageBox::No | QMessageBox::Yes); switch(msg.exec()){
case (QMessageBox::Help) : //判断哪个按键被按下
{
qDebug() << "Help button is clicked!";
break;
} case (QMessageBox::No) ://判断哪个按键被按下
{
qDebug() << "No button is clicked!";
break;
} case QMessageBox::Yes : //判断哪个按键被按下
{
qDebug() << "Yes button is clicked!";
break;
} }
} void Widget::warning_Clicked()
{
//
} void Widget::critical_Clicked()
{ } void Widget::about_Clicked()
{ }
main.cpp
#include "widget.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show(); return a.exec();
}
xiaoguotu:


Qt中的标准对话框之QMessageBox的更多相关文章
- Qt中的标准对话框
1. Qt为开发者提供了一些可复用的对话框类型,如QMessageBox,QFileDialog,QPrintDialog, QColorDialog, QInputDialog, QProgress ...
- 【Qt开发】Qt标准对话框之QMessageBox
好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...
- QT中的各种对话框
大家可以参见QT中各种MessageBox的使用的这篇文章 界面效果图如下,大家可以用代码自己操作 diglog.h #ifndef DIALOG_H #define DIALOG_H #includ ...
- Qt 中的消息对话框
1. QMessagebox 类的几个静态成员函数,可以直接调用创建对话框 StandardButton critical(QWidget * parent, const QString & ...
- 《转》PyQt4 精彩实例分析* 实例2 标准对话框的使用
和大多数操作系统一样,Windows及Linux都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感.Qt对这些标准对话框都定义了相关的类.这些类让使 ...
- QT笔记之模态对话框及非模态对话框
模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其 ...
- 跟我一起学QT_QT标准对话框_文件对话框
标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 文件对话框 QT中的文件对话框QFileDialog类提供 ...
- qt 关于Qt中MVC的介绍与使用
Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户.这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中. 模型 ...
- Qt 学习之路 2(15):标准对话框 QMessageBox
Qt 学习之路 2(15):标准对话框 QMessageBox 豆子 2012年9月18日 Qt 学习之路 2 40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...
随机推荐
- 分析攻击IP来源地并画出饼图
此文中的API将台湾列为国家,非本人立场,台湾属于中国,台湾岛生活的人不一定! 上码: #!/usr/bin/python #coding=utf-8 ''' http://ip-api.com/js ...
- 2--Python入门--Python数据集合类型--列表
在基础数据类型的基础上,Python有6中数据集合的类型: 列表list,最常用的数据类型,以[]为标识 元组tuple,和list很相似,但是不能二次赋值,用()标识 集合set,和list类似,但 ...
- anaconda jupyter notebook修改默认文件路径
使用anaconda附带的jupyter,想要改变默认运行文件路径,直接在cmd中输入jupyter notebook会提示:jupyter不是内部命令! 可能是anaconda代理了他所安装的软件, ...
- 从输入URL到页面加载发生了什么?
总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 具体内容点这里
- OSPF路由协议(一)
实验要求:使用OSPF协议,使各个PC之间能够相互通信 拓扑如下: 配置如下: R1enableconfigure terminal interface f0/0ip address 192.168. ...
- path-control demo js
THREE.Spline = function(a) { function b(a, b, c, d, e, f, g) { a = 0.5 * (c - a); d = 0.5 * (d - b); ...
- Python中random模块在主函数中设置随机种子是否对于调用的函数中的随机值产生影响?
一个问题,加入我有一个工程文件,在main函数里面调用random模块,设置随机种子,主函数中的随机种子的设置是否会影响主函数所调用的函数中的随机值? 实际上这个问题非常重要,比如你在跑网络的时候,初 ...
- 红外光通信装置数字部分思路点睛 2013年国赛f题
- matlab学习(2) sort、sortrows
1.sort函数 对于向量,sort(X)把向量的元素按照从小到大排序: 对于矩阵,sort(X)按照从小到大顺序对矩阵每一列进行排序:sort(X,2)按照行排序 对于字符串的元胞数组,sort(X ...
- lesson3-神经序列模型I-小象
优化目标函数: batch gradient descent:必须便利all训练数据 -->随机梯度下降,但不稳定~一个数据点就更新,快但不稳定-->minibatch,取m个随机数据点, ...