Как можно отобразить QMessageBox::warning
с треугольным восклицательным знаком, как показано ниже?
Я не могу найти ни одного варианта в QMessageBox::warning
, я получаю только красный круглый символ.
Как можно отобразить QMessageBox::warning
с треугольным восклицательным знаком, как показано ниже?
Я не могу найти ни одного варианта в QMessageBox::warning
, я получаю только красный круглый символ.
Треугольный значок должен использоваться по умолчанию для диалогового окна 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.setIcon() для настройки того, какой символ вы видите при отображении диалогового окна.
Предопределенные типы свойств значков перечислены здесь: https://doc.qt.io/qt-5/qmessagebox.html#severity-levels-and-the-icon-and-pixmap-properties
Вот мой пример окна сообщения на С++ со значком желтого треугольника:
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();