qcombox里面的item设置悬浮样式表
时间: 2023-05-27 17:04:04 浏览: 143
qq右侧悬浮
5星 · 资源好评率100%
您可以在QComboBox中使用QProxyStyle来设置悬浮样式表。以下是一个示例代码:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QComboBox, QStyleOptionComboBox, QProxyStyle, QWidget
class ComboBoxStyle(QProxyStyle):
def drawComplexControl(self, control, option, painter, widget=None):
if control == QStyle.CC_ComboBox and option.state & QStyle.State_MouseOver:
option.state = option.state & ~QStyle.State_Enabled
super().drawComplexControl(control, option, painter, widget)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
combo = QComboBox(self)
combo.addItems(["Item 1", "Item 2", "Item 3"])
combo.move(50, 50)
combo.setStyle(ComboBoxStyle())
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
在这个示例中,我们创建了一个名为ComboBoxStyle的自定义QProxyStyle,并将它设置为QComboBox的样式。在ComboBoxStyle中,我们重写了drawComplexControl()函数,这是一个用于绘制QStyle元素的函数。
我们使用了一个if语句来检查当前选项是否被悬停。如果是,我们将option.state属性从QStyle.State_Enabled转换为QStyle.State_MouseOver。这将删除当前选项的激活状态和边框,从而使其看起来像一个悬浮元素。
最后,我们将QComboBox的样式设置为ComboBoxStyle。这将应用我们自定义的悬浮样式表。
阅读全文