【问题标题】:QMessageBox warning yellow exclamation mark iconQMessageBox 警告黄色感叹号图标
【发布时间】:2012-06-27 14:49:06
【问题描述】:

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

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

【问题讨论】:

    标签: qt warnings qmessagebox


    【解决方案1】:

    三角形图标应该是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_()
    

    而且它们都运行良好。

    最后你能显示你用来显示对话框的代码吗?

    【讨论】:

    • QMessageBox::warning(this, "这是一个警告", "某处有问题");在带有 Qt 4.7.3 的 Linux 中,我得到红色圆形感叹号,但在 Windows 上,出现三角形黄色感叹号。
    • 我只能确认linux下python和C++都可以,但是我只安装了4.8.1版本。对不起...
    【解决方案2】:

    您可以使用 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();
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2017-09-09
      • 1970-01-01
      • 2020-12-30
      • 2011-08-19
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多