QSpinbox setstylesheet hover
时间: 2023-07-14 11:09:14 浏览: 97
QT QSpinBox 控件使用全解
QSpinBox控件没有直接支持hover(悬停)样式的设置。但是,你可以使用QEvent来捕获鼠标悬停事件并在事件触发时改变样式。下面是一个示例代码:
```python
from PyQt5.QtCore import Qt, QEvent
from PyQt5.QtWidgets import QApplication, QSpinBox
class CustomSpinBox(QSpinBox):
def __init__(self, parent=None):
super().__init__(parent)
self.installEventFilter(self)
self.setStyleSheet("border: 1px solid gray; background-color: white;")
def eventFilter(self, obj, event):
if event.type() == QEvent.Enter:
self.setStyleSheet("border: 1px solid gray; background-color: yellow;")
elif event.type() == QEvent.Leave:
self.setStyleSheet("border: 1px solid gray; background-color: white;")
return super().eventFilter(obj, event)
app = QApplication([])
spinbox = CustomSpinBox()
spinbox.show()
app.exec_()
```
在上述示例中,我们创建了一个自定义的QSpinBox子类`CustomSpinBox`,并重写了`eventFilter`函数来捕获悬停事件。当鼠标进入控件时,我们改变样式为黄色背景,当鼠标离开时,恢复为白色背景。
你可以根据需要自定义悬停时的样式,调整`setStyleSheet`函数中的样式表达式。
阅读全文