QMessageBox警告黄色感叹号图标

时间:2012-06-26 09:50:36

标签: qt warnings qmessagebox

如何显示带有三角形感叹号符号的QMessageBox::warning,如下所示?

Yellow background triangular exclamation mark

我在QMessageBox::warning找不到任何选项,我只得到红色的圆形符号。

2 个答案:

答案 0 :(得分:4)

三角形图标应该是QMessageBox::warning对话框的默认值,而红色圆形图标是QMessageBox::critical对话框的默认值。

在我的python代码中,我使用

QMessageBox.warning(None,QString("..."),QString("...."))

或更复杂的

msg = "..."
q = QMessageBox(QMessageBox.Warning, "...",  QString(msg))
q.setStandardButtons(QMessageBox.Ok);
i = QIcon()
i.addPixmap(QPixmap("..."), QIcon.Normal)
q.setWindowIcon(i)
q.exec_()

两者都运作良好。

最终您能否显示用于显示对话框的代码?

答案 1 :(得分:0)

您可以使用QMessageBox.setIcon()函数来配置显示对话框时看到的符号。

预定义的图标属性类型在此处列出:https://doc.qt.io/qt-5/qmessagebox.html#severity-levels-and-the-icon-and-pixmap-properties

这是我的带有黄色三角形图标的消息框的C ++示例:

    QMessageBox msgWarning;
    msgWarning.setText("WARNING!\nRunning low on coffee.");
    msgWarning.setIcon(QMessageBox::Warning);
    msgWarning.setWindowTitle("Caution");
    msgWarning.exec();

这是我的带有红色圆圈图标的消息框的C ++示例:

    QMessageBox msgError;
    msgError.setText("CRITICAL ERROR!\nThe McRib is no longer available!");
    msgError.setIcon(QMessageBox::Critical);
    msgError.setWindowTitle("Danger");
    msgError.exec();