QMessageBox:warning里怎么显示中文
2个回答
2016-09-20 · 知道合伙人软件行家
关注
展开全部
Qt 默认的弹出框上的按钮式英文,虽然也知道是什么意思,但终究不如中文看着顺眼。
QMessageBox box(QMessageBox::Warning,"标题","弹出框按钮更改为中文!");
box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel);
box.exec ();
弹出效果:
在网上查了很多资料,有各种各样的方法,弄得我晕头转向,毕竟我接触Qt才不过一个月。不过在我坚持不懈的努力下,总算是找到了一个便捷的方法。
QMessageBox box(QMessageBox::Warning,"标题","弹出框按钮更改为中文!");
box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel);
box.setButtonText (QMessageBox::Ok,QString("确 定"));
box.setButtonText (QMessageBox::Cancel,QString("取 消"));
box.exec ();
弹出效果:
怎么样,简单吧?
另外再附赠一个简单的弹出框类。虽然还没有办法返回用户点击的按钮,不过已经可以基本做到类似C#的使用效果了。这是我闲的无聊花了整整半天才搞定的。大概高手觉得很无趣吧?不过对我这种初学者来说,能弄到这种程度已经足以让我满足了。
这个类暂时先这样,等以后有机会再做补充。大概……
文件头:
#ifndef MESSAGEBOX_H
#define MESSAGEBOX_H
#include <QMessageBox>
#include <QPushButton>
#include <QString>
#include <QMap>
enum MessageBoxButtons
{
OK = 0, //消息框包含“确定”按钮
OKCancel = 1, //消息框包含“确定”和“取消”按钮
AbortRetryIgnore = 2, //消息框包含“中止”、“重试”和“忽略”按钮
YesNoCancel = 3, //消息框包含“是”、“否”和“取消”按钮
YesNo = 4, //消息框包含“是”和“否”按钮
RetryCancel = 5 //消息框包含“重试”和“取消”按钮
};
enum MessageBoxIcon
{
None = 0, //消息框未包含符号
Hand = 1, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Question = 2, //该消息框包含一个符号,该符号是由一个圆圈和其中的一个问号组成的
Exclamation = 3, //该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的
Asterisk = 4, //该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的
Stop = 5, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Error = 6, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Warning = 7, //该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的
Information = 8 //该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的
};
class MessageBox
{
public:
static void Show(const QString & content);
static void Show(const QString & content, const QString & caption);
static void Show(const QString & content, const QString & caption, MessageBoxButtons button);
static void Show(const QString & content, const QString & caption, MessageBoxButtons button, MessageBoxIcon icon);
private:
static QMap<QString,QMessageBox::StandardButton> GetButton(MessageBoxButtons type);
static QString GetButtonText(QMessageBox::StandardButton standar);
signals:
};
#endif // MESSAGEBOX_H
QMessageBox box(QMessageBox::Warning,"标题","弹出框按钮更改为中文!");
box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel);
box.exec ();
弹出效果:
在网上查了很多资料,有各种各样的方法,弄得我晕头转向,毕竟我接触Qt才不过一个月。不过在我坚持不懈的努力下,总算是找到了一个便捷的方法。
QMessageBox box(QMessageBox::Warning,"标题","弹出框按钮更改为中文!");
box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel);
box.setButtonText (QMessageBox::Ok,QString("确 定"));
box.setButtonText (QMessageBox::Cancel,QString("取 消"));
box.exec ();
弹出效果:
怎么样,简单吧?
另外再附赠一个简单的弹出框类。虽然还没有办法返回用户点击的按钮,不过已经可以基本做到类似C#的使用效果了。这是我闲的无聊花了整整半天才搞定的。大概高手觉得很无趣吧?不过对我这种初学者来说,能弄到这种程度已经足以让我满足了。
这个类暂时先这样,等以后有机会再做补充。大概……
文件头:
#ifndef MESSAGEBOX_H
#define MESSAGEBOX_H
#include <QMessageBox>
#include <QPushButton>
#include <QString>
#include <QMap>
enum MessageBoxButtons
{
OK = 0, //消息框包含“确定”按钮
OKCancel = 1, //消息框包含“确定”和“取消”按钮
AbortRetryIgnore = 2, //消息框包含“中止”、“重试”和“忽略”按钮
YesNoCancel = 3, //消息框包含“是”、“否”和“取消”按钮
YesNo = 4, //消息框包含“是”和“否”按钮
RetryCancel = 5 //消息框包含“重试”和“取消”按钮
};
enum MessageBoxIcon
{
None = 0, //消息框未包含符号
Hand = 1, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Question = 2, //该消息框包含一个符号,该符号是由一个圆圈和其中的一个问号组成的
Exclamation = 3, //该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的
Asterisk = 4, //该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的
Stop = 5, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Error = 6, //该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的
Warning = 7, //该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的
Information = 8 //该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的
};
class MessageBox
{
public:
static void Show(const QString & content);
static void Show(const QString & content, const QString & caption);
static void Show(const QString & content, const QString & caption, MessageBoxButtons button);
static void Show(const QString & content, const QString & caption, MessageBoxButtons button, MessageBoxIcon icon);
private:
static QMap<QString,QMessageBox::StandardButton> GetButton(MessageBoxButtons type);
static QString GetButtonText(QMessageBox::StandardButton standar);
signals:
};
#endif // MESSAGEBOX_H
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询