【问题标题】:Python QPushButton setIcon: put icon on buttonPython QPushButton setIcon:将图标放在按钮上
【发布时间】:2010-12-26 16:45:58
【问题描述】:

我想将一个 ICON 放入一个按钮中。代码应该是这样工作的:

    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

这里缺少什么?

非常感谢所有 cmets 和建议。

【问题讨论】:

    标签: python user-interface qt button icons


    【解决方案1】:

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

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

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

    希望这会有所帮助...

    【讨论】:

    • " 和 ' 在 Python 中都有效。
    • QPixmapQIcon 的隐式转换似乎不起作用。我刚刚在 PyQt 4.6 上尝试过,但也没有用。
    • 很奇怪是的...我从未尝试过,但是,您认为可以直接联系诺基亚吗?即使你(也许)没有商业执照......baysmith的以下回答也应该有效!
    • python 用户可能想去掉';'在第一行的末尾
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      您好 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),

      【讨论】:

        猜你喜欢
        • 2014-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        相关资源
        最近更新 更多