gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 14:04:41 29 4
gpt4 key购买 nike

我正在开发一个使用 Qt 4.8 的 Windows 应用程序,它使用

QMessageBox::information
QMessageBox::warning
...

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

如果发出这种声音,我该如何摆脱?

我发现是调用自

void QAccessible::updateAccessibility()

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

最佳答案

如果您使用不同的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在您的应用程序上以 QAccessible::AlertMessage 的角色捕获来自 QAccessibility 的任何事件/消息。

希望对您有所帮助。

关于windows - 如何禁用 Qt QMessageBox 播放的声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com