QStyledItemDelegate 用法举例
时间: 2024-06-11 11:10:38 浏览: 58
QStyledItemDelegate 是 Qt 提供的一个用于自定义列表项显示的委托类,可以对列表项的显示进行自定义,包括背景、前景、字体、对齐方式等等。
下面是一个简单的 QStyledItemDelegate 使用示例:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QApplication, QStyledItemDelegate, QTableView
class MyDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
# 设置背景颜色
painter.fillRect(option.rect, QColor(255, 255, 255))
# 绘制文本
painter.drawText(option.rect, Qt.AlignCenter, index.data())
if __name__ == '__main__':
app = QApplication([])
table_view = QTableView()
table_model = QStringListModel(['apple', 'banana', 'orange'])
table_view.setModel(table_model)
table_view.setItemDelegate(MyDelegate())
table_view.show()
app.exec_()
```
这个例子中我们继承了 QStyledItemDelegate 类,并重写了 paint 方法,在该方法中我们设置了列表项的背景颜色为白色,并在中心绘制了列表项的文本。
最后,我们将自定义委托类 MyDelegate 设置为列表视图的委托,这样就可以看到自定义的列表项显示效果了。
运行程序后,可以看到列表项的背景颜色变为白色,并且文本居中显示。
阅读全文