2011-10-05 94 views
4

如何從Qt中的Qt MessageBox中刪除標題欄?Qt MessageBox刪除TitleBar?

我已經通過

QMessageBox::QMessageBox(Icon icon, const QString & title, const QString & text, StandardButtons buttons, QWidget * parent, Qt::WindowFlags f) 

但如何使用這個了。任何示例? 任何幫助表示讚賞。 謝謝。

回答

7

這是QMessageBox的構造函數。您可以使用它像任何其他construcor,例如:

QMessageBox msgBox(QMessageBox::Question, 
        "This is the title", 
        "This is the text", 
        QMessageBox::Yes | QMessageBox::No, this, 
        Qt::FramelessWindowHint); 
msgBox.exec(); 

QMessageBox* msgBox = new QMessageBox(QMessageBox::Question, 
             "This is the title", 
             "This is the text", 
             QMessageBox::Yes | QMessageBox::No, this, 
             Qt::FramelessWindowHint); 
msgBox->exec(); 

在這種情況下,this是父窗口(QMainWindow實例)

0

Qt::WindowFlags f參數中,您可以傳遞選項來告訴如何修飾對話框窗口。

Qt :: Windows標誌是一個|分開的清單Qt::WindowType。 默認情況下,對話框獲取Qt::Dialog類型。如果你想改變它,你可以嘗試Qt::FramelessWindowHint值完全刪除對話框的標題欄和框架。嘗試其他選擇可能會讓你想要你的期望。

+1

不,默認值是'Qt :: Dialog | Qt的:: MSWindowsFixedSizeDialogHint'。 –

0

我覺得Qt::Sheet是更好的我案件。它完全是mac風格... QtMessageBox::information會給你Qt::Dialog風格在mac。