如何使用qmessagebox 头文件

下载费用:10 元(CNY) &
qt opengl 教程
下载文档到电脑,查找使用更方便
元(CNY)&&0人已下载
还剩页未读,继续阅读
编号:55274 &&
大小:268.27KB
&& 格式:PDF
&& 上传时间:
关&键&词:
帮帮创意所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
前列腺增生
主要慢性病的筛检-健康管理师培训
第四章作用于中枢神经系统的药物
第四章 胸部
主治讲课儿童all
第四章 肿瘤
第四章 局部血液循环障碍
第四章 基因突变与基因病()
生物反应调节剂的种类及在肿瘤临床的应用
离散数学第七章 计数
离散傅立叶变换
wimax技术介绍
中国风 (39).potx
红色新年喜庆ppt模版
科技企业ppt背景图片
科技企业ppt背景图片
国外专业商务PPT模板
企业通用动态通用PPT
绿色清新ppt模版
旅游宣传ppt模版
保安员.doc
保安服务人员基本服务意识培训教案(DOC 5页).doc
保洁员培训资料.doc
信息安全培训和CISP知识体系(PDF 72页).pdf
信息报告管理制度.doc
信貸助理AD组.doc
信貸助理A组.doc
信貸助理B组.doc
信貸助理D组.doc
倪砥-管理者的传播技巧-如何成为企业内部优秀的培训师讲义.doc
网站地图:
copyright@
帮帮创意网站版权所有
经营许可证编号:京ICP备号-3FinderCheng 的BLOG
用户名:FinderCheng
文章数:123
评论数:1044
访问量:4648086
注册日期:
阅读量:5863
阅读量:12276
阅读量:361975
阅读量:1057578
51CTO推荐博文
好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新。而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework。好了,现在还是继续来说说Qt的标准对话框吧!
这次来说一下QMessageBox以及类似的几种对话框。其实,我们已经用过QMessageBox了,就在之前的几个程序中。不过,当时是大略的说了一下,现在专门来说说这几种对话框。
先来看一下最熟悉的QMessageBox::information。我们在以前的代码中这样使用过:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
下面是一个简单的例子:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/086390.png" border="0" />
现在我们从API中看看它的函数签名:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />static StandardButton QMessageBox::information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton );
首先,它是static的,所以我们能够使用类名直接访问到(怎么看都像废话…);然后看它那一堆参数,第一个参数parent,说明它的父组件;第二个参数title,也就是对话框的标题;第三个参数text,是对话框显示的内容;第四个参数buttons,声明对话框放置的按钮,默认是只放置一个OK按钮,这个参数可以使用或运算,例如我们希望有一个Yes和一个No的按钮,可以使用QMessageBox::Yes | QMessageBox::No,所有的按钮类型可以在QMessageBox声明的StandarButton枚举中找到;第五个参数defaultButton就是默认选中的按钮,默认值是NoButton,也就是哪个按钮都不选中。这么多参数,豆子也是记不住的啊!所以,我们在用QtCreator写的时候,可以在输入QMessageBox::information之后输入(,稍等一下,QtCreator就会帮我们把函数签名显示在右上方了,还是挺方便的一个功能!
Qt提供了五个类似的接口,用于显示类似的窗口。具体代码这里就不做介绍,只是来看一下样子吧!
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::critical(NULL, "critical", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/451593.png" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::warning(NULL, "warning", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/473703.png" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::question(NULL, "question", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/490093.png" border="0" />
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::about(NULL, "About", "About this application");
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/506515.png" border="0" />
请注意,最后一个about()函数是没有后两个关于button设置的按钮的!
QMessageBox对话框的文本信息时可以支持HTML标签的。例如:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::about(NULL, "About", "About this &font color='red'&application&/font&");
运行效果如下:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/692546.png" border="0" />
如果我们想自定义图片的话,也是很简单的。这时候就不能使用这几个static的函数了,而是要我们自己定义一个QMessagebox来使用:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox message(QMessageBox::NoIcon, "Title", "Content with icon."); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />message.setIconPixmap(QPixmap("icon.png")); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />message.exec();
这里我们使用的是exec()函数,而不是show(),因为这是一个模态对话框,需要有它自己的事件循环,否则的话,我们的对话框会一闪而过哦(感谢laetitia提醒).需要注意的是,同其他的程序类似,我们在程序中定义的相对路径都是要相对于运行时的.exe文件的地址的。比如我们写"icon.png",意思是是在.exe的当前目录下寻找一个"icon.png"的文件。这个程序的运行效果如下:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" alt="" src="/attachment/595281.png" border="0" />
还有一点要注意,我们使用的是png格式的图片。因为Qt内置的处理图片格式是png,所以这不会引起很大的麻烦,如果你要使用jpeg格式的图片的话,Qt是以插件的形式支持的。在开发时没有什么问题,不过如果要部署的话,需要注意这一点。
最后再来说一下怎么处理对话框的交互。我们使用QMessageBox类的时候有两种方式,一是使用static函数,另外是使用构造函数。
首先来说一下static函数的方式。注意,static函数都是要返回一个StandardButton,我们就可以通过判断这个返回值来对用户的操作做出相应。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox::StandardButton rb = QMessageBox::question(NULL, "Show Qt", "Do you want to show Qt dialog?", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />if(rb == QMessageBox::Yes) 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />{ 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />&&&&&&&&QMessageBox::aboutQt(NULL, "About Qt"); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />}
如果要使用构造函数的方式,那么我们就要自己运行判断一下啦:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />QMessageBox message(QMessageBox::NoIcon, "Show Qt", "Do you want to show Qt dialog?", QMessageBox::Yes | QMessageBox::No, NULL); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />if(message.exec() == QMessageBox::Yes) 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />{ 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />&&&&&&&&QMessageBox::aboutQt(NULL, "About Qt"); 650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' onclick="window.open("/viewpic.php?refimg=" + this.src)" src="http://devbean./images/editer/InBlock.gif" align="top" />}
其实道理上也是差不多的。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》
16:37:46 05:57:08 06:07:41 06:15:06 10:33:53 10:36:38 10:38:30 10:53:55 12:10:21 18:13:41 18:15:48 15:43:18 10:21:48 13:04:42 13:47:23 21:14:28 18:36:27 17:56:41 18:36:37 18:37:34 &&1&
&&页数 ( 1/2 ) &&&&&QMessageBox的实现
QMessageBox的实现
QMessageBox的实现,让你不再为QMessageBox设置发愁
若举报审核通过,可奖励20下载分
被举报人:
liyinhuicc
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行QMessageBox
QMessageBox::NoIcon 没有任何图标
QMessageBox::Information 消息图标
QMessageBox::Warning 警告消息
QMessageBox::Critical 严重
QMessageBox::NoButton 无图标
QMessageBox::Ok 确定
QMessageBox::Cancel 取消
QMessageBox::Yes 是
QMessageBox::No 否
QMessageBox::Abort 中断
QMessageBox::Retry 重试
QMessageBox::Ignore 取消
QMessageBox::Default(进行或运算),当Enter被按下时被击活
QMessageBox::Escape(进行或运算),当Esc被按下时被击活
QMessageBox::QMessageBox(QWidget *parent=0,const char
构造父对象为parent,名字标识为name
QMessageBox::QMessageBox(const QString
&caption,const QString &text,Icon
& & int button0,int button1,int
button2,QWidget *parent=0,
& & const char *name=0,bool
modal=TRUE,WFlags f=WStyle_DialogBorder)
构造标题为caption,文本为text,图标为icon和最多为三个按钮的消息框
QMessageBox::~QMessageBox()
销毁消息框
void QMessageBox::about(QWidget
*parent,const QString &caption,const QString
&text)静态显示一个标题为caption文本为text的简单关于框
void QMessageBox::aboutQt(QWidget
*parent,const QString
&caption=QString::null)静态
显示关于该应用程序正在使用的QT版本号
int QMessageBox::critical(QWidget *parent,const QString
&caption,const QString &text,int
button0,int button1,int
button2=0)静态打开一个标题为caption并且文本为text的严重消息框,该对话框最多有三个按钮,如果不想要三个按钮,可把最后一个或者最后二个设置为QMessageBox::NoButton
int QMessageBox::critical(QWidget *parent,const QString
&caption,const QString &text,const
QString &button0Text=QString::null,const QString
&button1Text=QString::null,const QString
&button2Text=QString::null,int
defaultButtonNumber=0,int
escapeButtonNumber=-1)虚
显示一个标题为caption、文本为text并且按钮分别为1、2、3的严重消息对话框。返回被点击的按钮的数字(0、1或2)。
Icon QMessageBox::icon() const
返回消息框的图标
const QPixmap *QMessageBox::iconPixmap() const
返回当前图标
int QMessageBox::information(QWidget *parent,const QString
&caption,const QString &text,int
button0,int button1=0,int button2=0)虚
打开一个标题为caption并且文本为text的消息框,点击返回按钮标识QMessageBox::Ok/QMessageBox::No等等
void QMessageBox::setButtonText(int
button,const QString &text)
设置消息框按钮button的文本为text
void QMessageBox::setIcon(Icon icon)
设置消息框的图标
void QMessageBox::setIconPixmap(const QPixmap
设置当前图标
void QMessageBox::setText(const QString &)
设置被显示的消息框文本
void QMessageBox::setTextFormat(TextFormat)
设置消息框中显示的文本的格式
QString QMessageBox::text() const
返回被显示的消息框文本
TextFormat QMessageBox::textFormat() const
返回消息框中显示的文本的格式
int QMessageBox::warning(QWidget *parent,const QString
&caption,const QString &text,int
button0,int button1,int button2=0)静态
打开一个标题为caption文本为text的警告消息框
如果parent为0消息框变为应用程序全局的模式对话框
如果parent为一个窗口部件,消息框变为相对于parent的模式对话框
============================================================================================
以下是几种对话框:
先来看一下最熟悉的QMessageBox::information。我们在以前的代码中这样使用过:
QMessageBox::information(NULL,&"Title",&"Content",
QMessageBox::Yes | QMessageBox::No,
QMessageBox::Yes);
下面是一个简单的例子:
如果我们想自定义图片的话,也是很简单的。这时候就不能使用这几个static的函数了,而是要我们自己定义一个QMessagebox来使用:
QMessageBox
message(QMessageBox::NoIcon,&"Title",&"Content
with icon.");&
message.setIconPixmap(QPixmap("icon.png"));&
message.exec();
这里我们使用的是exec()函数,而不是show(),因为这是一个模态对话框,需要有它自己的事件循环,否则的话,我们的对话框会一闪而过哦(感谢laetitia提醒).
需要注意的是,同其他的程序类似,我们在程序中定义的相对路径都是要相对于运行时的.exe文件的地址的。比如我们写"icon.png",意思是是在.exe的当前目录下寻找一个"icon.png"的文件。这个程序的运行效果如下:
============================================================================================
还有一个常见的问题:就是我们如何才能将QMessageBox对话框中的按钮改写成中文:
1,QT中如何显示中文呢?
QTextCodec*pCodec=QTextCodec::codecForName("System");//获取系统字体编码
QTextCodec::setCodecForLocale(pCodec);
QTextCodec::setCodecForCStrings(pCodec);
QTextCodec::setCodecForTr(pCodec);
如果你的操作系统当前是中文环境的话,就可以显示中文。
或者:#include
&QtCore/QTextCodec&
QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()-&name()));
QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()-&name()));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()-&name()));
2,通过第1步的操作就可以在文本中显示中文了,但是还不能在内置的QMessageBox按钮上面显示中文。
该怎么办呢?
(1)从QT安装目录下面将文件“qt_zh_CN.qm”复制一份到你的项目目录下。
例如,我是从“D:\QtSDK\Desktop\Qt\4.7.3\msvc2008\translations”目录下复制的“qt_zh_CN.qm”文件。
你的项目目录指你项目的.pro文件所在的目录。
(2)在项目目录中新建一个文本文件,输入如下内容:
&qresource
prefix="/"&
&file&qt_zh_CN.qm&/file&
&/qresource&
保存后,将该文本文件的后缀名由txt改为qrc,表明这是资源文件。
Creator中将上述文件加到你的项目中。
(4)修改代码如下,表示要加载相应的资源文件。
QTranslator&oT
&&oTranslator.load(":/qt_zh_CN");
// 注意此处字符串以“:/”开头,后接的字符串是刚才复制的qm文件的名字
QApplication oApp(argc, argv);
oApp.installTranslator(&oTranslator);
(5)重新编译、运行程序即可。
或者:(1)同上
&(2)加载该文件:
QTranslator&oT
oTranslator.load("qt_zh_CN.qm");&
& &QApplication oApp(argc,
&oApp.installTranslator(&oTranslator);
最好是在加载该文件的时候,首先判断下改文件是否存在:QFile
&file(qt_zh_CN.qm);
bool &b = file.exists();
(3)重新编译、运行程序即可。
===========================================================================================
但是:用这个QMessageBox::information(this,
sTitle, sMessage, "确定", "取消");
这样的效果岂不是更好,【注】:当我们用简单的思维思考问题的时候,问题就很简单;当我们用复杂的思维思考问题的时候,问题就会很复杂
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。12534人阅读
box.setWindowTitle(tr(&警告&));
box.setIcon(QMessageBox::Warning);
box.setText(curFile+tr(&尚未保存,是否保存?&));
box.setStandardButtons(QMessageBox::Yes|QMessageBox::No);
if(box.exec()==QMessageBox::Yes)
do_file_Save();
QMessageBox::critical(NULL,&critical&,&Content&,
QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
QMessageBox message(QMessageBox::NoIcon,&Show Qt&,&Do you want to show Qt dialog?&, QMessageBox::Yes | QMessageBox::No, NULL);
if(message.exec() == QMessageBox::Yes)
QMessageBox::aboutQt(NULL,&About Qt&);
QMessageBox::StandardButton rb = QMessageBox::question(NULL,&Show Qt&,&Do you want to show Qt dialog?&, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
if(rb == QMessageBox::Yes)
QMessageBox::aboutQt(NULL,&About Qt&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:599323次
积分:8580
积分:8580
排名:第1691名
原创:240篇
转载:47篇
评论:244条
★★★★★★★★★★★★★★★★★★
分布式仿真、虚拟现实、工业仿真
UE4、Delta3D、OpenGL、OSG
★★★★★★★★★★★★★★★★★★
阅读:9165
文章:14篇
阅读:38461
(1)(1)(1)(1)(1)(2)(2)(4)(5)(1)(3)(1)(2)(5)(4)(4)(3)(3)(27)(3)(3)(1)(8)(5)(3)(1)(5)(1)(11)(13)(12)(5)(7)(4)(6)(2)(4)(1)(1)(5)(13)(17)(5)(20)(12)(22)(6)(7)(3)(11)

我要回帖

更多关于 qmessagebox 设置大小 的文章

 

随机推荐