Qt__QMessageBox
转自豆子空间
显示窗口##
Qt提供了五个类似的接口,用于显示类似的窗口。
QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
QMessageBox::critical(NULL, "critical", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
QMessageBox::warning(NULL, "warning", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
QMessageBox::question(NULL, "question", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
QMessageBox::about(NULL, "About", "About this application");
QMessageBox::about(NULL, "About", "About this <font color='red'>application</font>");






如果想自定义图片的话,也是很简单的。这时候就不能使用这几个static的函数了,而是要定义一个QMessagebox来使用:
QMessageBox message(QMessageBox::NoIcon, "Title", "Content with icon.");
message.setIconPixmap(QPixmap("icon.png"));
message.exec();
使用的是exec()函数,而不是show(),因为这是一个模态对话框,需要有它自己的事件循环,否则的话,对话框会一闪而过.

交互##
最后再来说一下怎么处理对话框的交互。使用QMessageBox类的时候有两种方式,一是使用static函数,另外是使用构造函数。
static函数的方式###
注意,static函数都是要返回一个StandardButton,可以通过判断这个返回值来对用户的操作做出相应。
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");
}
构造函数的方式###
需要自己运行判断一下
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");
}
其实道理上也是差不多的。
Qt__QMessageBox的更多相关文章
随机推荐
- Plotagraph软件五分钟光速速成傻瓜教程
http://bbs.dji.com/thread-144203-1-1.html 让照片变成动态的
- 运行tomcat7w.exe未安装指定的服务
新安装了tomcat7.042,但是启动tomcat7w.exe是提示未安装指定服务,解决方法如下: 在运行窗口输入cmd,运行DOS,输入以下命令: cd E:\apache-tomcat-7.0. ...
- Linux 性能分析工具汇总合集
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...
- oracle远程物化视图
一.创建远程物化视图日志 源端: CREATE MATERIALIZED VIEW LOG ON tozwdb.test tablespace tozwdb_data WITH ROWID; 二.付权 ...
- VUE2第五天学习---自定义指令
阅读目录 1.理解VUE中的自定义指令 回到顶部 1.理解VUE中的自定义指令 默认核心指令有 (v-model 和 v-show), 但是有时候我们需要用到自定义指令,在vue中,代码复用主要形式和 ...
- PAT A1017 Queueing at Bank (25 分)——队列
Suppose a bank has K windows open for service. There is a yellow line in front of the windows which ...
- linux简单的安全防护
注: 1.该脚本是以centos7.4.1708做的 2.函数jia/jian是加权限/减权限 3.改过密码以后,下次使用新创建的用户登录时将提示更改密码,第一次要输入原始的密码,原始密码改脚本中定义 ...
- Luogu P4779 【模板】单源最短路径(标准版)(Dijkstra+堆优化模板)
qwq dij其实和prim挺像的,prim是找权值最小点,dij是找边, 用一个优先队列就可以在加入边的时候直接排序,避免了每次遍历更新min priority_queue <pair< ...
- java 面向对象基本知识
1.继承 使用extends实现继承 只有单继承 子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法). instanceof是二元 ...
- 【webstorm】注册码 更新笔记
20190225 1.修改hosts文件,windows的hosts文件路径是 C:\ Windows \ System32 \ drivers \ etc \ hosts 0.0.0.0 acco ...