pyqt5 鼠标滑过按钮,按钮改变颜色,离开之后,按钮恢复原先颜色
时间: 2023-06-27 07:01:34 浏览: 67
可以通过绑定鼠标进入和离开事件来实现这个效果。
首先,需要用`QSS`(Qt样式表)定义按钮的不同状态下的样式。在这里,我们定义了当鼠标悬停在按钮上时的背景颜色为黄色,恢复原先颜色时为灰色:
```python
button_style = """
QPushButton{
background-color: gray;
color: white;
}
QPushButton:hover{
background-color: yellow;
color: black;
}
"""
```
然后,在程序中,我们创建一个按钮,并绑定`enterEvent`和`leaveEvent`事件,分别用于在鼠标进入和离开时改变按钮的样式:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QCursor
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Button Hover')
button = QPushButton('Hover me', self)
button.setStyleSheet(button_style)
button.setGeometry(100, 80, 100, 30)
button.enterEvent = lambda event: button.setStyleSheet("background-color: yellow; color: black;")
button.leaveEvent = lambda event: button.setStyleSheet(button_style)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
```
这样,当鼠标滑过按钮时,按钮的背景颜色会变为黄色,鼠标离开按钮时,按钮的背景颜色会恢复为灰色。