如何用qss设置QListWidget的item的背景样式
时间: 2024-03-01 08:54:25 浏览: 121
QWidget样式表设置背景示例代码
可以使用QListWidget的setItemDelegate()方法和QStyledItemDelegate来设置QListWidget的item的背景样式。具体步骤如下:
1. 创建QListWidget对象。
2. 创建QStyledItemDelegate对象,并重写paint()方法,在这个方法里面设置item的背景样式。
3. 使用setItemDelegate()方法将QStyledItemDelegate对象设置为QListWidget的item代理。
示例代码如下:
```python
from PyQt5.QtWidgets import QListWidget, QStyledItemDelegate, QApplication, QWidget, QVBoxLayout
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
class ItemDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
# 设置item的背景颜色为红色
painter.fillRect(option.rect, QColor(255, 0, 0))
super().paint(painter, option, index)
if __name__ == '__main__':
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
list_widget = QListWidget()
# 设置QListWidget的item代理为QStyledItemDelegate对象
list_widget.setItemDelegate(ItemDelegate())
# 添加item
for i in range(10):
list_widget.addItem(f'item {i+1}')
layout.addWidget(list_widget)
window.setLayout(layout)
window.show()
app.exec_()
```
上述代码中,创建了一个QStyledItemDelegate的子类ItemDelegate,并重写了paint()方法,在这个方法里面设置item的背景样式为红色。然后将ItemDelegate对象设置为QListWidget的item代理。运行程序,可以看到QListWidget的item的背景样式被设置为红色。可以根据需要自定义QStyledItemDelegate的paint()方法,实现不同的背景样式效果。
阅读全文