PyQt4:更改操作上的按钮图标

时间:2016-04-17 18:58:27

标签: python pyqt pyqt4

我正在尝试更改特定操作上的按钮图标。 (点击,禁用等)

举个例子,按下按钮,如果我有一个按钮:

btn = QtGui.QPushButton(" ", self)
btn.resize(100, 100)
btn.move(0, 0)
btn.setIcon(QtGui.QIcon(""))
btn.setIconSize(QtCore.QSize(100, 100))

点击后如何更改图标?我是否需要点击信号?

btn.clicked.connect(self.some_function_that_shows_new_icon)

如果是这样,我如何使禁用信号或任何其他按钮条件可用?

示例:

btn.disabled.connect(self.some_function_that_shows_new_icon)

(将检测按钮是否禁用的信号,上面的按钮不起作用)

1 个答案:

答案 0 :(得分:4)

QIcons可以为不同的模式状态设置多个图像。您将多个QPixmap添加到同一QIcon并指定该图像的模式和状态。

icon = QIcon()
icon.addPixmap(QPixmap('normal.png'))
icon.addPixmap(QPixmap('disabled.png'), QIcon.Disabled)
icon.addPixmap(QPixmap('clicking.png'), QIcon.Active)
icon.addPixmap(QPixmap('on.png'), QIcon.Normal, QIcon.On)
btn.setIcon(icon)

这取决于点击按钮是否正在改变按钮的状态(例如,打开或关闭按钮)。如果您使用按钮切换其他内容的状态,则无效。