Решение:
Моя ошибка: файл, в котором добавление значка к кнопке используется с помощью функции "заполнитель" из 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"))
Сообщение об ошибке отсутствует, значок просто не появляется.
Если я добавляю значок через 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
Я понятия не имею, в чем проблема.