Как установить значок для Qpushbutton в графическом интерфейсе с помощью заполнителей в Qt Designer?

Вопрос: Решение: Моя ошибка: файл, добавляющий значок к кнопке, используется через функцию "placeholder" из QtDesigner. Основная программа, расположенная в другой папке, ищет в своей папке значок, а не в папке из "импортированного" файла. Поэтому вам просто нужно добавить путь к значку: dirpath = os.path.dirname(os.path.abspath(__file__)) icon1_path = os.path.join(dirpath,"arrow_down.ico") icon = QtGui.QPixmap(icon1_path) Я хочу создать Qpushbutton с

Вопрос:

Решение:
Моя ошибка: файл, добавляющий значок к кнопке, используется через функцию “placeholder” из QtDesigner. Основная программа, расположенная в другой папке, ищет в своей папке значок, а не в папке из “импортированного” файла. Поэтому вам просто нужно добавить путь к значку:

dirpath = os.path.dirname(os.path.abspath(__file__)) icon1_path = os.path.join(dirpath,»arrow_down.ico») icon = QtGui.QPixmap(icon1_path)

Я хочу создать Qpushbutton с иконкой вместо текста:

icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(«arrow_down.png»)) self.ui.pb_down.setIcon(icon)

Но это не работает. Ни то, ни другое не работает:

self.ui.pb_down.setIcon(QtGui.QIcon(«arrow_down.png»))

Theres не является сообщением об ошибке, значок просто не отображается.

Если я добавлю значок через Qt Designer, значок отображается в самом Qt Desiger, но при запуске программы значок снова исчезает. Кто-нибудь знает, что происходит?

Я использую python 2.7 и Windows 7

Изменить: используя код @Chris Aung, я получаю кнопку со значком.

button = QtGui.QPushButton() self.setCentralWidget(button) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(«arrow_down.ico»)) print button.icon().isNull() #Returns true if the icon is empty; otherwise returns false. #output = False

Но если я использую именно этот код в моем графическом интерфейсе, он просто не добавляет значок.

icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(«arrow_down.ico»)) self.ui.pb_down.setIcon(icon) print self.ui.pb_down.icon().isNull() # output = True

Я не знаю, где проблема.

Лучший ответ:

Я смог создать QPushButton с помощью Icon без каких-либо проблем с помощью кода, который вы предоставили. Ниже приведен код, который я использовал.

from PyQt4 import QtGui,QtCore import sys class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) button = QtGui.QPushButton(«TEST») self.setCentralWidget(button) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(«add.png»)) button.setIcon(icon) if __name__ == «__main__»: app = QtGui.QApplication(sys.argv) main = MainWindow() main.show() app.exec_()

Я предлагаю вам снова проверить ваше изображение png (или попробовать с другим png изображением). Я не совсем уверен, что он исправит проблему, но раньше у меня была аналогичная проблема, и использование другого .png изображения, похоже, устраняет проблему.

Ответ №1

Это работает для меня и автоматически генерируется pyqt, когда вы конвертируете файл.ui в.py с помощью инструмента pyuic4.

Icon = QtGui.QIcon() Icon.addPixmap(QtGui.QPixmap(_fromUtf8(«SOME FILE»)), QtGui.QIcon.Normal, QtGui.QIcon.Off) button.setIcon(Icon) button.setIconSize(QtCore.QSize(width, height))

Если вы используете это, вам также нужно будет определить “_fromUtf8” в верхней части вашего модуля как:

try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s Ответ №2

У вас есть текст, отображаемый на этой кнопке? Попробуйте сыграть с размером значка setIconSize(), чтобы начать с него, вы можете попробовать установить его в прямоугольник pixmap.

Оцените статью
Добавить комментарий