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

She*_*Rox 2 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))
Run Code Online (Sandbox Code Playgroud)

单击时如何更改其图标?我需要发出点击信号吗?

btn.clicked.connect(self.some_function_that_shows_new_icon)

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

例子:

btn.disabled.connect(self.some_function_that_shows_new_icon)

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

Bre*_*bel 5

QIcons可以有不同模式状态的多个图像。QPixmap您可以向同一个图像添加多个sQIcon并指定该图像的模式和状态。

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)
Run Code Online (Sandbox Code Playgroud)

这取决于单击按钮是否会更改按钮的状态(例如,打开或关闭它)。如果您使用按钮来切换其他内容的状态,则这将不起作用。