как использовать значки по умолчанию с qt

Я использую только Qt (хотя и PyQt), и я не получаю значков, когда я звоню, например. QMessageBox.предупреждение(). Есть ли способ использовать значки платформы по умолчанию? В настоящее время я использую более полный конструктор QMessageBox и вызываю setIconPixmap.


person gatoatigrado    schedule 29.03.2009    source источник
comment
Опубликуйте код, вам не нужно устанавливать растровое изображение, чтобы отображался значок предупреждения. Это на Windows/Mac/Linux?   -  person    schedule 14.04.2009
comment
Извините, я потерял оригинал, но это было что-то простое. Используя ваш, это не работает.   -  person gatoatigrado    schedule 27.04.2009


Ответы (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

ХТХ! приветствует

person Giancarlo    schedule 20.04.2009

Я не слишком хорошо знаком с использованием Qt через Python или с использованием QMessageBox. Однако беглый взгляд на документацию показывает, что предупреждение будет использовать значок предупреждения, который должен быть значком по умолчанию для платформы, если он не был изменен. Вы пытались просмотреть систему отслеживания ошибок Qt, чтобы увидеть, является ли это ошибкой? Или отправить запрос об ошибке/функции для него?

person Caleb Huitt - cjhuitt    schedule 31.03.2009

Я не уверен, как вы описали использование окна сообщения, но вот как я его использую:

from PyQt4 import QtGui
QtGui.QMessageBox.warning(parent, dialogTitle, dialogText)

Если это не приводит к появлению значка предупреждения в вашем окне сообщения, вы можете рассмотреть возможность обновления вашего PyQt до последней версии, потому что в прошлом я сталкивался с небольшими ошибками, подобными этой, с некоторыми версиями PyQt.

person Community    schedule 22.04.2009
comment
Я сделал, только сегодня... возможно, есть какая-то библиотека для иконок, которую я не установил. Пожалуйста, не беспокойтесь об этом слишком сильно, если вы уже не знаете (или не являетесь разработчиком qt); это не такая большая проблема для меня. здравствуйте, Николас - person gatoatigrado; 27.04.2009