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

6 投票
3 回答
22491 浏览
提问于 2025-04-15 17:01

我想在一个按钮里放一个图标,代码应该是这样的:

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

但是,它却给了我一个错误信息:

    TypeError: argument 1 of QAbstractButton.setIcon() has an invalid type

这里缺少了什么呢?

欢迎大家提出意见和建议。

3 个回答

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))

希望这也能帮助到其他人……|:0),

7

创建一个QIcon,而不是QPixmap,来传递给setIcon()。试着把第二行改成这样:

self.printButton.setIcon(QtGui.QIcon('printer.tif'))
18

这真奇怪,我在我的C++应用程序上快速测试了一下代码,结果似乎是可以正常工作的...

也许你可以用这个来解决你的问题:

rMyIcon = QtGui.QPixmap("printer.tif");
self.printButton.setIcon(QtGui.QIcon(rMyIcon))

希望这能帮到你一点...

撰写回答