2014-05-22 23 views
0

我目前使用靜態調用QMessageBox::critical()消息框,我真的需要它保持在所有窗口之上。有人有一個想法如何實現它?QMessageBox :: critical使它保持在頂部

只需要靜態版本QMessageBox

在此先感謝。

+2

http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx – Mat

+0

您希望此消息框位於屏幕上所有窗口的頂部嗎? –

+0

那麼,你討厭你的用戶吧? –

回答

0

使用靜態方法QMessageBox::critical()這是不可能的。

你將不得不使用非靜態版本,這樣你就可以修改窗口標誌:

QMessageBox dlg(QMessageBox::Critical, tr("YourTitle"), tr("YourErrorMessage")); 
dlg.setWindowFlags(dlg.windowFlags() | Qt::WindowStaysOnTopHint); 
dlg.exec(); 

注意,仍然沒有保證的窗口管理器確實適用此設置。 (這就是爲什麼它被稱爲提示

但是... 在我看來,你不應該這樣做 - 沒有應用程序(除了操作系統本身)應該考慮本身重要...... 爲您的用戶這可能很煩人,所以只有在錯誤的情況下才能繼續使用整個系統是不可能的或危險的。