对于一些重要的操作需要让用户再次确认一次,给出几个基本的实例

是和否

switch( QMessageBox::warning(NULL, "warning",QString::fromLocal8Bit("确定导入文件的频道吗?"),

QMessageBox::Yes | QMessageBox::Default,

QMessageBox::No | QMessageBox::Escape ))

{

case QMessageBox::Yes:

break;

case QMessageBox::No:

return;

}

    switch( QMessageBox::warning(NULL, "warning",QString::fromLocal8Bit("确定导入文件的频道吗?"),
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No | QMessageBox::Escape ))
{
case QMessageBox::Yes:
break;
case QMessageBox::No:
return;
}

文件未保存

switch( QMessageBox::information( this, "Application name here",

"The document contains unsaved changes\n"

"Do you want to save the changes before exiting?",

"&Save", "&Discard", "Cancel",

0,      // Enter == button 0

2 ) ) { // Escape == button 2

case 0: // Save被点击或者Alt+S被按下或者Enter被按下。

// 保存

break;

case 1: // Discard被点击或者Alt+D被按下。

// 不保存但退出

break;

case 2: // Cancel被点击或者Alt+C被按下或者Escape被按下。

// 不退出

break;

}

switch( QMessageBox::information( this, "Application name here",
"The document contains unsaved changes\n"
"Do you want to save the changes before exiting?",
"&Save", "&Discard", "Cancel",
0, // Enter == button 0
2 ) ) { // Escape == button 2
case 0: // Save被点击或者Alt+S被按下或者Enter被按下。
// 保存
break;
case 1: // Discard被点击或者Alt+D被按下。
// 不保存但退出
break;
case 2: // Cancel被点击或者Alt+C被按下或者Escape被按下。
// 不退出
break;
}

重试与放弃

switch( QMessageBox::warning( this, "Application name here",

"Could not save the user preferences,\n"

"because the disk is full.  You can delete\n"

"some files and press Retry, or you can\n"

"abort the Save Preferences operation.",

QMessageBox::Retry | QMessageBox::Default,

QMessageBox::Abort | QMessageBox::Escape )) {

case QMessageBox::Retry: // Retry被点击或者Enter被按下。

// 再次尝试

break;

case QMessageBox::Abort: // Abort被点击或者Escape被按下。

// 放弃

break;

}

switch( QMessageBox::warning( this, "Application name here",
"Could not save the user preferences,\n"
"because the disk is full. You can delete\n"
"some files and press Retry, or you can\n"
"abort the Save Preferences operation.",
QMessageBox::Retry | QMessageBox::Default,
QMessageBox::Abort | QMessageBox::Escape )) {
case QMessageBox::Retry: // Retry被点击或者Enter被按下。
// 再次尝试
break;
case QMessageBox::Abort: // Abort被点击或者Escape被按下。
// 放弃
break;
}

自定义的提示方式

如果没有任何标准消息框是合适地,你可以自己手工创建一个QMessageBox并且自己定义按钮文本:

QMessageBox mb( "Application name here",

"Saving the file will overwrite the original file on the disk.\n"

"Do you really want to save?",

QMessageBox::Information,

QMessageBox::Yes | QMessageBox::Default,

QMessageBox::No,

QMessageBox::Cancel | QMessageBox::Escape );

mb.setButtonText( QMessageBox::Yes, "Save" );

mb.setButtonText( QMessageBox::No, "Discard" );

switch( mb.exec() ) {

case QMessageBox::Yes:

// 保存并且退出

break;

case QMessageBox::No:

// 不保存退出

break;

case QMessageBox::Cancel:

// 不保存并且不退出

break;

}

如果没有任何标准消息框是合适地,你可以自己手工创建一个QMessageBox并且自己定义按钮文本:
QMessageBox mb( "Application name here",
"Saving the file will overwrite the original file on the disk.\n"
"Do you really want to save?",
QMessageBox::Information,
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No,
QMessageBox::Cancel | QMessageBox::Escape );
mb.setButtonText( QMessageBox::Yes, "Save" );
mb.setButtonText( QMessageBox::No, "Discard" );
switch( mb.exec() ) {
case QMessageBox::Yes:
// 保存并且退出
break;
case QMessageBox::No:
// 不保存退出
break;
case QMessageBox::Cancel:
// 不保存并且不退出
break;
}

其他相关

按钮类型有:

  • Ok - 单按钮消息框地默认值
  • Cancel - 注意这个不是自动和Escape关联的
  • Yes
  • No
  • Abort
  • Retry
  • Ignore

按钮类型可以由上述类型和下面两个修饰成分使用或“|”来进行组合。

  • Default - 让按Enter键等于点击这个按钮。通常用于OK、Yes或者其它相似的。
  • Escape - 让按Escape键等于点击这个按钮。通常用于Abort、Cancel或者其它相似的

QT添加二次确认功能,QMessageBox的使用的更多相关文章

  1. FastReport 中添加二维码功能.(Delphi)

    http://www.cnblogs.com/fancycloud/archive/2011/07/24/2115240.html FastReport 中添加二维码功能.(Delphi)   在实际 ...

  2. shopnc 商家中心添加打印商品二维码功能

    需求中提到需要增加每一件商品可以打印,用于线下体验店实体商品的二维码标签,客人可以根据手机扫二维码功能进行购买 任务描述: 1.如附件实现”批量打印标签“和单个商品”打印“标签功能. 2.标签有两种” ...

  3. 为现有图像处理程序添加读写exif的功能

    为现有图像处理程序添加读取exif的功能 exif是图片的重要参数,在使用过程中很关键的一点是exif的数据能够和图片一起存在.exif的相关功能在操作系统中就集成了,在csharp中也似乎有了实现. ...

  4. Android二维码功能实现,在程序内嵌入ZXing项目

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9526247 最近二维码真是越来越火了,随便电视上.网络上.商场里,到处都是二维码. ...

  5. phpcms 移植【添加相关文章】功能

    添加相关文章功能相当有用,移植一个过来基本上可以实现比较复杂的页面内包含分类功能,做二次开发时可以省下不少力气. 用例:如果一个产品,属于一个厂家,而这个厂家是动态添加的,既不是一个分类,而是一个厂家 ...

  6. iOS--iOS7摄像头识别二维码功能

    iOS–iOS7摄像头识别二维码功能 属性介绍: AVFoundation 框架基于以下几个类实现图像捕捉 ,通过这些类可以访问来自相机设备的原始数据并控制它的组件. AVCaptureDevice ...

  7. ios7下二维码功能的实现

    苹果公司升级到IOS7后自己的PassBook自带二维码扫描功能,所以现在使用二维码功能不需要在借助第三方库了 使用前请先导入AVFoundation.frameWork // //  YHQView ...

  8. 3D打印机如何添加自动调平功能

    原理说明 Kossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:http://learn.makerlab.me/guides/11 3d打印打印时最重要的是第一层的效果,如果 ...

  9. 【转】如何在您的PCB大作上添加二维码?

    开篇先给大家来段新闻截选: “8月20日,新加坡总理李显龙在国庆群众大会上演讲时,称中国移动支付(电子支付)领先全球,新加坡的移动支付还很落后,上海路边摊都有移动支付,新加坡人去上海就像乡巴佬. 这番 ...

随机推荐

  1. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  2. 一个老菜鸟所理解的UX及产品流

    从事前端开发到目前为止已经有4年多的时间了,从一个小菜鸟一路依靠自学,到目前总算一个老菜鸟了.当然了,从事前端的工作,是免不了要对产品以及用户体验有些许了解的.最近谈论起这方面的内容,就按照自己的想法 ...

  3. WebApi系列~基于单请求封装多请求的设计~请求的安全性设计与实现

    回到目录 对于一个Http请求如何保证它的安全,这已经不是一个新的话题,对于请求的安全我们通常考虑的无非就是"请求的被篡改性"和"请求的被复制性",第一个问题我们很容易实现,可以通过参数+密钥的方式, ...

  4. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法

    返回目录 说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都 ...

  5. 学习ASP.NET MVC(六)——我的第一个ASP.NET MVC 编辑页面

    在上一文章中由Entity Framework(实体框架)去实现了对数据库的CURD操作.在本篇文章中,主要是调试修改自动生成的动作方法和视图,以及调试编辑功能与编辑功能的Book控制器. 首先,在V ...

  6. eclipse导入cordova创建的项目

    eclipse导入cordova创建的项目 看图不说话 run这个MainActivity就可以了,bin目录下会生成APK

  7. Mybatis中SqlMapper配置的扩展与应用(3)

    隔了两周,首先回顾一下,在Mybatis中的SqlMapper配置文件中引入的几个扩展机制: 1.引入SQL配置函数,简化配置.屏蔽DB底层差异性 2.引入自定义命名空间,允许自定义语句级元素.脚本级 ...

  8. SAP Business One系统功能介绍

    SAP Business One(简称SAP B One)是一套价格合理.易于实施的综合业务管理解决方案.该解决方案专为中小型企业量身打造,可确保实现公司发展.提高可盈利性和控制力度以及实现业务流程的 ...

  9. poi操作excel的基本用法

    这周公司要用excel作为数据存储格式做一个文具申请的功能,感觉以前本来很简单的功能变复杂了不少,但是还是记录一下一些excel的基本用法. 写在最前面:这里只介绍一些excel的基本存储方式(读,写 ...

  10. Spring.NET的AOP怎么玩

    之前公司一直不让使用第三方组件,因此AOP方面的组建一直不能使用,很多面向切面的应用只能通过自己写一些GenericMethod的泛型方法来解决,有一些呆板.由于公司已经开始全面转Java,因此架构组 ...