在designer.exe中设置pyside2的 QComboBox的item样式
时间: 2023-05-11 11:07:23 浏览: 201
自定义QComboBox,用Listwidget做Model,美化
4星 · 用户满意度95%
可以使用QStyledItemDelegate来设置QComboBox的item样式,具体实现可以参考以下代码:
```python
from PySide2.QtWidgets import QComboBox, QApplication, QStyledItemDelegate
from PySide2.QtGui import QPainter, QColor, QBrush, QFontMetrics
from PySide2.QtCore import Qt, QRect
class ItemDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
if option.state & QStyle.State_Selected:
painter.fillRect(option.rect, option.palette.highlight())
else:
painter.fillRect(option.rect, option.palette.base())
painter.drawText(option.rect, Qt.AlignCenter, index.data())
class ComboBox(QComboBox):
def __init__(self, parent=None):
super().__init__(parent)
self.setItemDelegate(ItemDelegate(self))
if __name__ == '__main__':
app = QApplication([])
combo = ComboBox()
combo.addItems(['item1', 'item2', 'item3'])
combo.show()
app.exec_()
```
这段代码使用QStyledItemDelegate来绘制QComboBox的item,可以自定义item的样式。
阅读全文