主要且唯一的窗口box容器仅包含一个按钮小部件button。
button是一个带有图像的按钮。当鼠标光标悬停在按钮上时,我需要将此图像更改为另一个图像,如果从按钮上删除鼠标光标,则返回上一个图像。
理想的选择是将按钮文本的样式表更改为斜体。据我所知,在样式表中,您可以指定一个项目QPushButton:hover,只允许您控制光标在按钮上的位置。但有了它,我只能改变颜色。
请告诉我如何解决我的问题?
from PyQt5 import QtCore, QtWidgets, QtGui
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
box = QtWidgets.QHBoxLayout(self)
button = QtWidgets.QPushButton()
button.setStyleSheet(qss)
button.setIcon(QtGui.QIcon('-_1.png'))
button.setIconSize(QtCore.QSize(30, 20))
box.addWidget(button)
qss = '''QPushButton {
border: none;
margin: 0px;
padding: 0px;
}'''
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle(' ')
window.show()
sys.exit(app.exec_())
或者,使用按钮上方的事件过滤器。过滤器安装是通过installEventFilter方法完成的,处理是在被覆盖的eventFilter方法中完成的。
在其中,对于特定事件,更改按钮图标。
例子:
border-image:帮你