我正在尝试更改特定操作的按钮图标。(点击、禁用等)
举个例子,让我们按下按钮,如果我有一个按钮:
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)
(将检测按钮是否禁用的信号,上面的一个不起作用)
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)
这取决于单击按钮是否会更改按钮的状态(例如,打开或关闭它)。如果您使用按钮来切换其他内容的状态,则这将不起作用。