2013-05-15 62 views
1

要顯示一個消息框,我用這個代碼:使用靜態方法QMessageBox :: information()時,刪除QMessageBox的標題欄?

int ret = QMessageBox::question(this,"Title","Stupid code",QMessageBox::Yes | QMessageBox::No); 

一切正常,但現在,我想刪除的消息框的標題欄。 我該如何做到這一點?

我不想使用:

QMessageBox msgBox("Title" , "Stupid code", QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, this, Qt::FramelessWindowHint); 
msgBox.exec(); 
+1

你嘗試QMessageBox提示MSGBOX( 「」, 「愚蠢的代碼」,QMessageBox提示::問題,QMessageBox提示::是| QMessageBox提示::沒有,爲此,Qt的:: FramelessWindowHint); – Arun

+0

我不想這樣做(我在p/s中說過)。 @ _ @ – PhiVH

+1

不想使用@Arun建議的方法的原因是什麼? – TheDarkKnight

回答

1

我會建議你用一個靜態成員函數question()創建自己的XMessageBox類,接受相同的參數QMessageBox::question()創建一個包裝函數。在您的包裝功能,創建一個給你的功能,另外的論點QMessageBox對象時,Qt::FramelessWindowHint標誌,撥打exec()並傳遞返回值。這樣,您只需在代碼中搜索並替換所有出現的QMessageBox::questionXMessageBox::question

如果您想要更大的靈活性,您可以使question()函數接受Qt::WindowFlags類型的附加參數,並將其傳遞給QMessageBox構造函數。

,讓你做你想做的在不改變任何代碼的是改變了Qt代碼(qmessagebox.cpp)和重新編譯的Qt的唯一選擇。