我正在开发一个使用Qt4.8的Windows应用程序,它使用
QMessageBox::information
QMessageBox::warning
...当调用这些函数中的任何一个时,windows默认情况下会播放声音。我的客户对此感到恼火,并希望在不更改windows设置的情况下永久禁用此功能。
如果这听起来像这样,我该如何摆脱呢?
我发现它是从
void QAccessible::updateAccessibility()但到目前为止,我还没有看到一种禁用它的方法。
发布于 2013-04-18 14:42:59
如果您使用不同的QMessageBox、QMessageBox::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来捕获来自QAccessible::AlertMessage角色的QAccessibility的任何事件/消息。
希望这能有所帮助。
https://stackoverflow.com/questions/16070012
复制相似问题