Qt鼠标移入时改变QPushButton颜色
时间: 2024-03-25 20:41:46 浏览: 12
要实现鼠标移入时改变QPushButton颜色,可以使用QPushButton的enterEvent()和leaveEvent()事件。具体实现如下:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QPalette, QColor
class MyButton(QPushButton):
def __init__(self, parent=None):
super().__init__(parent)
self.setStyleSheet("background-color: blue; color: white;")
def enterEvent(self, event):
palette = QPalette()
palette.setColor(QPalette.Button, QColor(0, 255, 0))
self.setPalette(palette)
def leaveEvent(self, event):
palette = QPalette()
palette.setColor(QPalette.Button, QColor(0, 0, 255))
self.setPalette(palette)
if __name__ == '__main__':
app = QApplication([])
widget = QWidget()
button = MyButton("Button", widget)
button.move(50, 50)
widget.show()
app.exec_()
```
在这个例子中,我们新建了一个MyButton类,继承自QPushButton,并重载了enterEvent()和leaveEvent()事件。当鼠标移入时,我们使用QPalette将按钮颜色设置为绿色;当鼠标移出时,将按钮颜色恢复为蓝色。