请问谁知道怎么把Qt中的QMessageBox中显示的ok和cancel改成汉字啊 确定和取消啊!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问谁知道怎么把Qt中的QMessageBox中显示的ok和cancel改成汉字啊 确定和取消啊!相关的知识,希望对你有一定的参考价值。

#include <QApplication>
#include <QPushButton>
#include <QMessageBox>
#include <QTextCodec>
int main(int argc,char *argv[])

    QApplication a(argc,argv);
                                                                                                                                                                                                                              
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));
                                                                                                                                                                                                                              
    QPushButton *okbtn=new QPushButton(QObject::tr("确定"));
    QPushButton *cancelbtn=new QPushButton(QObject::tr("取消"));
                                                                                                                                                                                                                              
    QMessageBox *mymsgbox=new QMessageBox;
                                                                                                                                                                                                                              
    mymsgbox->addButton(okbtn,QMessageBox::AcceptRole);
    mymsgbox->addButton(cancelbtn,QMessageBox::RejectRole);
                                                                                                                                                                                                                              
    mymsgbox->show();
    a.exec();

//代码不用解释了吧,你可以查看QT助手,主要是成员函数addButton的使用,很简单

上面是4.8的代码,如果你是在5.1的版本下,要防止汉子变乱码,一种方法是源代码以无BOM格式保存,另一种是用QTextCodec类,QT助手有使用方法

参考技术A 1、QT的国际化可以自动翻译的。
2、自己做个Box

如何禁用 Qt QMessageBox 播放的声音?

【中文标题】如何禁用 Qt QMessageBox 播放的声音?【英文标题】:How can I disable sounds played by Qt QMessageBox? 【发布时间】:2013-04-17 20:49:35 【问题描述】:

我正在使用 Qt 4.8 开发一个使用

的 Windows 应用程序
QMessageBox::information
QMessageBox::warning
...

当调用这些函数中的任何一个时,windows 默认播放声音。我的客户对此感到恼火,并希望在不更改 Windows 设置的情况下永久禁用此功能。

如果出现这种声音,我该如何消除?

我发现它是从

void QAccessible::updateAccessibility()

但我目前还没有找到禁用它的方法。

【问题讨论】:

我认为这是一个 Windows 功能。 不,声音是从 Qt 主动调用的。 我不这么认为,QMessageBox 根本没有提到声音,而且我很确定 QMessageBox 上没有声音,因为我禁用了 Windows 声音方案。 我在调试器中单步调试了源代码。声音在void QAccessible::updateAccessibility()中播放 在他们的文档中 QAccessible 中有一个 SoundPlayed 组件。至于消息框,我知道 QMessageBox 的静态方法调用会发出声音的原生消息框。尝试制作一个 QMessageBox 消息,使用它的属性设置它,然后在该对象上调用 .exec() 。据说可以有不同的音频结果。可能值得一试。 【参考方案1】:

如果您使用不同的QMessageBoxQMessageBox::about,或创建自己的QMessageBox 实例并自己设置iconPixmap 和所有内容,则不应听到哔哔声。

QMessageBox::warning(0, "Test", "test"); // Plays alert

QMessageBox::about(0, "Test", "test"); // No sound, but no icon either

QMessageBox msgBox;
msgBox.setParent(0);
msgBox.setWindowTitle("Test");
msgBox.setText("test");
if(false)

    msgBox.setIcon(QMessageBox::Warning);// makes sound

else

    QPixmap p;
    p.load("warning.png");
    msgBox.setIconPixmap(p);// no sound, but with icon

msgBox.exec();

否则,要禁用警告声音,您可能需要在您的应用上使用global event filter 来捕捉来自QAccessibility 的任何事件/消息,角色为QAccessible::AlertMessage

希望对您有所帮助。

【讨论】:

您还需要调用 msgBox.setStandardButtons(QMessageBox::Ok); 之类的方法来显示消息框。

以上是关于请问谁知道怎么把Qt中的QMessageBox中显示的ok和cancel改成汉字啊 确定和取消啊!的主要内容,如果未能解决你的问题,请参考以下文章

亲们,谁知道QT中的toolbutton怎么添加小图标呢?资源文件做法不行啊!!就整成这样的:

pt100热电阻测温公式怎么算,请问谁知道

请问组三中奖规则谁知道?

请问谁知道哪里有ape格式的音乐下载

请问谁知道在Ai中怎么将zoom工具改成鼠标滑动快捷键

网站打开速度很慢,去远程桌面上重启phpstudy后网站打开速度很快,一会又变得很慢,请问谁知道啥原因