如何从QWidget中静音所有声音(警钟)?

时间:2017-01-11 11:51:34

标签: c++ qt audio qdialog mute

我想知道如何将QDialog中的所有声音静音。我有基于QDialog的基本弹出窗口类,

class PopUp : QDialog
{
    // member vars and funcs
};

我显示为

PopUp *popup_msg = new PopUp(this, /* ... */);
popup_msg->exec();

除了显示一些文本外,这个PopUp类并没有真正做任何事情,但我需要它是模态的,因此我在构造函数中调用setModal(true)。问题在于,当QDialog是模态时,当用户尝试与其他小部件(例如MainWindow)交互时,它会播放错误铃/哔声/声音。我想禁用这个声音!

这个问题:How can i disable sounds played by Qt QMessageBox?,解决了问题,但在我的案例中并没有完全解决问题。它的解决方案只会在show() QMessageBox(或我的情况下为QDialog)时将声音静音,但当用户尝试点击其他小部件时,声音仍会播放。我希望它完全静音,人们会认为这是一个非常简单的解决方案的微不足道的问题。也许像QWidget::setAttribute(Qt::WA_MuteAllSounds, true)这样的东西可能存在,但显然不是(?)。

所有帮助,提示和技巧都是最受欢迎的!

0 个答案:

没有答案