{
const QPixmap pixmap
= qVariantValue<QPixmap>
(index.
data(Qt
::UserRole));
painter->drawPixmap(option.rect, pixmap);
}
{
Q_UNUSED(option);
const QPixmap pixmap
= qVariantValue<QPixmap>
(index.
data(Qt
::UserRole));
return pixmap.size();
}
...
cb->setItemDelegate(new PixmaDelegate(cb));
for (int i = 0; i < 10; ++i) {
pixmap.
fill(QColor(qrand
() % 255, qrand
() % 255, qrand
() % 255));
cb
->addItem
(QString("item%1").
arg(i
), pixmap
);
}
vbl->addWidget(cb);
...
void PixmapDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
const QPixmap pixmap = qVariantValue<QPixmap>(index.data(Qt::UserRole));
painter->drawPixmap(option.rect, pixmap);
QItemDelegate::paint(painter, option, index);
}
QSize PixmapDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
Q_UNUSED(option);
const QPixmap pixmap = qVariantValue<QPixmap>(index.data(Qt::UserRole));
return pixmap.size();
}
...
QComboBox *cb = new QComboBox();
cb->setItemDelegate(new PixmaDelegate(cb));
for (int i = 0; i < 10; ++i) {
QPixmap pixmap(100, 100);
pixmap.fill(QColor(qrand() % 255, qrand() % 255, qrand() % 255));
cb->addItem(QString("item%1").arg(i), pixmap);
}
QVBoxLayout *vbl = new QVBoxLayout(this);
vbl->addWidget(cb);
...
To copy to clipboard, switch view to plain text mode
Bookmarks