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的更多相关文章

  1. Qt中的标准对话框

    1. Qt为开发者提供了一些可复用的对话框类型,如QMessageBox,QFileDialog,QPrintDialog, QColorDialog, QInputDialog, QProgress ...

  2. 【Qt开发】Qt标准对话框之QMessageBox

    好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...

  3. QT中的各种对话框

    大家可以参见QT中各种MessageBox的使用的这篇文章 界面效果图如下,大家可以用代码自己操作 diglog.h #ifndef DIALOG_H #define DIALOG_H #includ ...

  4. Qt 中的消息对话框

    1. QMessagebox 类的几个静态成员函数,可以直接调用创建对话框 StandardButton critical(QWidget * parent, const QString &  ...

  5. 《转》PyQt4 精彩实例分析* 实例2 标准对话框的使用

    和大多数操作系统一样,Windows及Linux都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感.Qt对这些标准对话框都定义了相关的类.这些类让使 ...

  6. QT笔记之模态对话框及非模态对话框

    模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其 ...

  7. 跟我一起学QT_QT标准对话框_文件对话框

    标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 文件对话框 QT中的文件对话框QFileDialog类提供 ...

  8. qt 关于Qt中MVC的介绍与使用

    Qt包含一组使用模型/视图结构的类,可以用来管理数据并呈现给用户.这种体系结构引入的分离使开发人员更灵活地定制项目,并且提供了一个标准模型的接口,以允许广泛范围的数据源被使用到到现有的视图中. 模型 ...

  9. Qt 学习之路 2(15):标准对话框 QMessageBox

    Qt 学习之路 2(15):标准对话框 QMessageBox  豆子  2012年9月18日  Qt 学习之路 2  40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...

随机推荐

  1. 阻止ARP欺骗

    利用Look N Stop防火墙,防止arp欺骗 阻止网络执法官控制 网络执法官是利用的ARp欺骗的来达到控制目的的. ARP协议用来解析IP与MAC的对应关系,所以用下列方法可以实现抗拒网络执法官的 ...

  2. xargs用法

    xargs是一个很有用的命令,它可以实现并行,同&有异曲同工之妙,在大批量管理服务器时非常有用 xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具.它擅长将标准输入数据 ...

  3. box-sizing布局

    box-sizing 语法:box-sizing: content-box | border-box | inherit; 参考: https://www.jianshu.com/p/e2eb0d8c ...

  4. OpenID

    OpenId是一个以用户为中心的数字身份识别框架,它具有开放.分散.自由等特性.OpenId的创建是基于这样一个概念:我们可以通过URI(或者URL网址)来识别一个网站.同样,我们也可以通过这样的方式 ...

  5. MySQL中增删改操作

    一.插入数据 1.1使用insert...values语句插入 语法:insert   [low_priority|delayed|high_priority](优先级问题,ow_priority是指 ...

  6. ZOJ4067 Books(贪心)

    题目链接:传送门 题目大意: DG在书店买书,从左到右第i本书价格为ai.DG从左走到右,能买就买.如果已知DG买了m本书,问他原本最多有多少钱.若无上限,输出“Richman”,若不可能买这么多书, ...

  7. MVC分别代表的含义

    MVC 是一种将应用程序的逻辑层和表现层进行分离的方法.ThinkPHP 也是基于MVC设计模式的.MVC只是一个抽象的概念,并没有特别明确的规定,ThinkPHP中的MVC分层大致体现在:模型(M) ...

  8. 大型网站系统与Java中间件实践读书笔记

    转载:http://blog.csdn.net/ioscodelover/article/details/45047869 1.分布式系统相对集中式而言,是指多台计算机互相通过消息通信进行协作而对外提 ...

  9. php基础-1

    php规范 php文件以<?php开头,以?>结尾. php可以和html代码混写,若当前文件为纯php代码 ,则不用写php结尾 php的一行代码以";"(分号)结尾 ...

  10. 实验吧—密码学——WP之 杯酒人生

    首先我们研究题目 1.这是古典密码 2.喵星人要发送一段密码 3.加密过的秘钥“HTRUZYJW” 4.秘钥加密前是一个单词 我们先解决这个秘钥,用凯撒解密 而我们知道,在古典密码里,有秘钥的加密方式 ...