如何用qss样式表设置QListWidget的item的背景样式
时间: 2024-03-01 14:54:27 浏览: 131
可以使用QListWidget的setItemDelegate()方法和QSS样式表来设置QListWidget的item的背景样式。具体步骤如下:
1. 创建QListWidget对象。
2. 使用setItemDelegate()方法将QStyledItemDelegate对象设置为QListWidget的item代理。
3. 在QSS样式表中,使用QListWidget::item:selected伪状态选择器来设置选中item的背景样式,使用QListWidget::item伪状态选择器来设置未选中item的背景样式。
示例代码如下:
```python
from PyQt5.QtWidgets import QListWidget, QStyledItemDelegate, QApplication, QWidget, QVBoxLayout
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
if __name__ == '__main__':
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
list_widget = QListWidget()
# 设置QListWidget的item代理为QStyledItemDelegate对象
list_widget.setItemDelegate(QStyledItemDelegate())
# 添加item
for i in range(10):
list_widget.addItem(f'item {i+1}')
# 设置QListWidget的QSS样式表
list_widget.setStyleSheet('''
QListWidget::item:selected {
background-color: red;
}
QListWidget::item {
background-color: blue;
}
''')
layout.addWidget(list_widget)
window.setLayout(layout)
window.show()
app.exec_()
```
上述代码中,设置QListWidget的item代理为QStyledItemDelegate对象,然后在QSS样式表中,使用QListWidget::item:selected伪状态选择器来设置选中item的背景样式,使用QListWidget::item伪状态选择器来设置未选中item的背景样式。运行程序,可以看到QListWidget的item的背景样式被设置为蓝色,选中item的背景样式被设置为红色。根据需要,可以自定义QSS样式表,实现不同的背景样式效果。
阅读全文