我将 QPixmap 设置为 QStandardItem:
QStandardItem* item = new QStandardItem();
item->setData( pixmap, Qt::DecorationRole );
然后我做appendRow()
并添加item
到模型中。
我在 QListView 中显示模型中的所有像素图。如何为 ListView 中的第一项(图像)设置细边框?
我将 QPixmap 设置为 QStandardItem:
QStandardItem* item = new QStandardItem();
item->setData( pixmap, Qt::DecorationRole );
然后我做appendRow()
并添加item
到模型中。
我在 QListView 中显示模型中的所有像素图。如何为 ListView 中的第一项(图像)设置细边框?
子类化QStyledItemDelegate
并覆盖它的绘画功能。使用它为您的项目绘制边框。然后将该委托设置为您的 QListView。
例子:
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
if(index.row() == 0)
{
painter->setPen(QPen(Qt::red, 2));
painter->drawRect(option.rect.x()+1, option.rect.y(), option.rect.width()-1, option.rect.height());
}
QStyledItemDelegate::paint(painter, option, index);
}
listView->setItemDelegate(new MyDelegate);
您不必检查绘图功能中的行。您可以为特定行设置委托:
listView->setItemDelegateForRow(0, new MyDelegate);