2013-04-17 4 views
4

나는 살전 기능 중 하나가 호출Qt QMessageBox에서 재생되는 사운드를 어떻게 비활성화 할 수 있습니까?

QMessageBox::information 
QMessageBox::warning 
... 

를 사용 Qt는 4.8을 사용하여 Windows 응용 프로그램 작업을하고, 윈도우는 기본 사운드로 재생됩니다. 내 고객은 이것에 대해 짜증을 내며 창 설정을 변경하지 않고이 기능을 영구적으로 사용 중지하려고합니다.

이 소리는 어떻게 제거 할 수 있습니까?

나는 그것이

void QAccessible::updateAccessibility() 

에서 호출하지만 지금까지 사용하지 않도록 설정하는 방법을 참조하지 않는 것을 발견했다.

+0

이 기능은 Windows 기능이라고 생각합니다. – dtech

+0

아니요, 소리는 Qt에서 활발하게 호출됩니다. –

+0

나는 그렇게 생각하지 않는다. QMessageBox는 소리에 관해 전혀 말하지 않고, Windows 사운드 스키마를 비활성화했기 때문에 나는 QMessageBox에 소리가 들리지 않는다고 확신한다. – dtech

답변

4

당신이 자신을 다른 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(); 

그렇지 않으면 경고음을 해제, 당신은 아마 QAccessible::AlertMessage의 역할과 QAccessibility에서 모든 이벤트/메시지를 잡으려고 응용 프로그램에 global event filter가 필요합니다.

희망이 있습니다.

관련 문제