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 *name=0)
构造父对象为parent,名字标识为name
QMessageBox::QMessageBox(const QString &caption,const QString &text,Icon icon,
构造标题为caption,文本为text,图标为icon和最多为三个按钮的消息框
销毁消息框
void QMessageBox::about(QWidget *parent,const QString &caption,const QString &text)静态显示一个标题为caption文本为text的简单关于框
显示关于该应用程序正在使用的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)。
返回消息框的图标
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的模式对话框
============================================================================================
以下是几种对话框:
message.setIconPixmap(QPixmap("icon.png"));
message.exec();
需要注意的是,同其他的程序类似,我们在程序中定义的相对路径都是要相对于运行时的.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)在项目目录中新建一个文本文件,输入如下内容:
<RCC>
</RCC>
保存后,将该文本文件的后缀名由txt改为qrc,表明这是资源文件。
(3)在Qt Creator中将上述文件加到你的项目中。
(4)修改代码如下,表示要加载相应的资源文件。
(5)重新编译、运行程序即可。
或者:(1)同上
最好是在加载该文件的时候,首先判断下改文件是否存在:QFile
(3)重新编译、运行程序即可。
效果如下