6

Qt 4.8 を使用する Windows アプリケーションに取り組んでいます。

QMessageBox::information
QMessageBox::warning
...

これらの関数のいずれかが呼び出されると、ウィンドウはデフォルトでサウンドを再生します。私の顧客はこれに悩まされており、Windows の設定を変更せずにこれを永久に無効にしたいと考えています。

この音を消すにはどうすればいいですか?

から呼び出されていることがわかりました

void QAccessible::updateAccessibility()

しかし、これを無効にする方法は今のところ見当たりません。

4

1 に答える 1

5

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();

それ以外の場合、警告音を無効にするには、アプリにグローバル イベント フィルターQAccessibilityを設定して、 の役割でイベント/メッセージをキャッチする必要がありますQAccessible::AlertMessage

それが役立つことを願っています。

于 2013-04-18T06:42:59.183 に答える