Python QPushButton setIcon:在按钮上放置图标

Thr*_*ash 2 python user-interface icons qt button

我想把一个ICON放入一个按钮..代码应该像这样工作:

    self.printButton = QtGui.QPushButton(self.tab_name)
    self.printButton.setIcon(QtGui.QPixmap('printer.tif'))
    self.printButton.setGeometry(QtCore.QRect(1030, 500, 161, 61))
Run Code Online (Sandbox Code Playgroud)

但相反,它给出了错误消息:

    TypeError: argument 1 of QAbstractButton.setIcon() has an invalid type
Run Code Online (Sandbox Code Playgroud)

这里缺少什么?

所有意见和建议都非常感谢.

And*_*y M 9

这很奇怪,我很快在我的C++应用程序上测试了代码,它似乎正在工作......

也许通过使用它你可以纠正你的问题:

rMyIcon = QtGui.QPixmap("printer.tif");
self.printButton.setIcon(QtGui.QIcon(rMyIcon))
Run Code Online (Sandbox Code Playgroud)

希望这个对你有帮助...


bay*_*ith 7

创建一个QIcon而不是QPixmap以传递给setIcon().尝试将第二行更改为

self.printButton.setIcon(QtGui.QIcon('printer.tif'))
Run Code Online (Sandbox Code Playgroud)


Thr*_*ash 5

嗨,Baysmith 和 Andy...感谢您的投入。我测试了你的建议,它有效。我还必须添加setIconSize,否则图标显示很小。这是代码:

def printerButton(self,tab_name):
    self.printButton = QtGui.QPushButton(tab_name)
    self.printButton.setIcon(QtGui.QIcon('icons/printer.tif'))
    self.printButton.setIconSize(QtCore.QSize(130,130))
    self.printButton.setGeometry(QtCore.QRect(1030, 500, 161, 61))
Run Code Online (Sandbox Code Playgroud)

希望这对其他人也有帮助....|:0),