Qt MessageBox删除TitleBar?

时间:2011-10-05 10:01:56

标签: qt

如何从Qt中的Qt MessageBox中删除标题栏?

我已经完成了

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

但是如何使用它。任何例子? 任何帮助表示赞赏。 感谢。

3 个答案:

答案 0 :(得分:7)

这是QMessageBox的构造函数。您可以像使用其他任何构造一样使用它,例如:

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实例)

答案 1 :(得分:0)

Qt::WindowFlags f参数中,您可以传递说明如何装饰对话框窗口的选项。

Qt :: Windows标志是| Qt::WindowType的分隔列表。 默认情况下,对话框将获得Qt::Dialog类型。如果要更改它,可以尝试使用Qt::FramelessWindowHint值完全删除对话框周围的标题栏和框架。尝试其他选项可能会让您期望。

答案 2 :(得分:0)

我认为Qt::Sheet在我的案例中更好。这完全是mac风格...... QtMessageBox::information会在mac下为您提供Qt::Dialog样式。