首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用Qt QMessageBox播放的声音?

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

Stack Overflow用户
提问于 2013-04-18 04:49:36
回答 1查看 3K关注 0票数 6

我正在开发一个使用Qt4.8的Windows应用程序,它使用

代码语言:javascript
复制
QMessageBox::information
QMessageBox::warning
...

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

如果这听起来像这样,我该如何摆脱呢?

我发现它是从

代码语言:javascript
复制
void QAccessible::updateAccessibility()

但到目前为止,我还没有看到一种禁用它的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 14:42:59

如果您使用不同的QMessageBoxQMessageBox::about,或者创建自己的QMessageBox实例并自己设置iconPixmap和所有内容,您应该不会收到蜂鸣声。

代码语言:javascript
复制
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来捕获来自QAccessible::AlertMessage角色的QAccessibility的任何事件/消息。

希望这能有所帮助。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16070012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档