pyqt QListView 添加Item图片
时间: 2024-01-16 20:05:08 浏览: 181
可以通过重写QStyledItemDelegate的paint()函数来添加图片。首先,将图片传递给模型中相应的QVariant,然后创建一个QStyledItemDelegate子类并重写paint()函数。在paint函数中,能够通过painter.drawPixmap()函数将图片绘制到项中。具体实现可参考以下代码:
```
QVariant data = QPixmap("image.png");
model->setData(model->index(row, column), data, Qt::DecorationRole);
```
```
class CustomDelegate : public QStyledItemDelegate
{
public:
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override
{
QStyledItemDelegate::paint(painter, option, index);
if (index.data(Qt::DecorationRole).canConvert<QPixmap>())
{
const QPixmap pixmap = index.data(Qt::DecorationRole).value<QPixmap>();
painter->drawPixmap(option.rect, pixmap);
}
}
};
```
```
QListView* listView = new QListView();
listView->setItemDelegate(new CustomDelegate());
```
注意,以上代码只是为了演示添加图片,具体实现可能需要对不同的情况进行特别处理。
阅读全文