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);
}
QListView のデリゲートを設定するには:
listView->setItemDelegate(new MyDelegate);
必ずしもペイント関数で行をチェックする必要はありません。特定の行のデリゲートを設定するだけです:
listView->setItemDelegateForRow(0, new MyDelegate);