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