Мне интересно, как отключить все звуки от QDialog
, У меня есть этот базовый класс всплывающих окон на основе QDialog
,
class PopUp : QDialog
{
// member vars and funcs
};
который я отображаю как
PopUp *popup_msg = new PopUp(this, /* ... */);
popup_msg->exec();
Этот класс PopUp на самом деле ничего не делает, кроме отображения некоторого текста, но мне нужно, чтобы он был модальным, поэтому я вызываю setModal(true)
в конструкторе. Проблема в том, что когда QDialog
является модальным, он воспроизводит сообщение об ошибке / звуковой сигнал / звук, когда пользователь пытается взаимодействовать с другими виджетами (например, MainWindow). Я хочу отключить этот звук!
Этот вопрос: Как я могу отключить звуки, воспроизводимые Qt QMessageBox?, решает проблему, но не решает ее полностью в моем случае. Его решение только приглушает звук show()
-ин QMessageBox
(или же QDialog
в моем случае), но звук все еще играет, когда пользователь пытается нажать на другие виджеты. Я хочу, чтобы он полностью отключился, и можно подумать, что это была тривиальная проблема с действительно простым решением. Может быть что-то вроде QWidget::setAttribute(Qt::WA_MuteAllSounds, true)
мог бы существовать, но, по-видимому, нет (?).
Вся помощь, советы и рекомендации наиболее ценны!
Задача ещё не решена.
Других решений пока нет …