Я использую только Qt (хотя и PyQt), и я не получаю значков, когда я звоню, например. QMessageBox.предупреждение(). Есть ли способ использовать значки платформы по умолчанию? В настоящее время я использую более полный конструктор QMessageBox и вызываю setIconPixmap.
как использовать значки по умолчанию с qt
Ответы (3)
http://doc.qt.io/qt-5/qmessagebox.html
по ссылке выше:
QMessageBox поддерживает четыре предопределенных уровня серьезности сообщений или типов сообщений, которые на самом деле отличаются только предопределенными значками, которые они показывают. Укажите один из четырех предопределенных типов сообщений, задав для свойства icon один из предопределенных значков.
поэтому вы должны использовать конструктор QMessageBox:
QMessageBox ( Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )
и вы можете использовать один из этих значков:
http://doc.qt.io/qt-5/qmessagebox.html#Icon-enum
например, вы можете передать этот параметр для значка: QMessageBox::Warning
ХТХ! приветствует
Я не слишком хорошо знаком с использованием Qt через Python или с использованием QMessageBox. Однако беглый взгляд на документацию показывает, что предупреждение будет использовать значок предупреждения, который должен быть значком по умолчанию для платформы, если он не был изменен. Вы пытались просмотреть систему отслеживания ошибок Qt, чтобы увидеть, является ли это ошибкой? Или отправить запрос об ошибке/функции для него?
Я не уверен, как вы описали использование окна сообщения, но вот как я его использую:
from PyQt4 import QtGui
QtGui.QMessageBox.warning(parent, dialogTitle, dialogText)
Если это не приводит к появлению значка предупреждения в вашем окне сообщения, вы можете рассмотреть возможность обновления вашего PyQt до последней версии, потому что в прошлом я сталкивался с небольшими ошибками, подобными этой, с некоторыми версиями PyQt.