没有图标的QMessageBox

QMessageBox without Icon

通常,在创建 QMessageBox 时,window 图标将如下所示:

但是我想要一个没有 window/title 栏图标的 QMessageBox,像这样:

我做了一些研究,发现我必须使用 QMessageBox::NoIcon。我试过了,但没有真正奏效。

那么我该怎么做才能删除 QMessageBox 图标?

QMessageBox::NoIcon 不适用于标题栏图标:它适用于消息框中的大图标。

要删除标题栏图标,您必须设置特定标志:

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

// set the flags you want: here is the case when you want to keep the close button
msgBox.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);

msgBox.exec();