// a sensible maximum size for the icons
static const int MAX_HEIGHT = 100;
static const int MAX_WIDTH = 100;
void ItemDelegate
::paint(QPainter* painter,
const QStyleOptionViewItem
& option,
const QModelIndex
& index
) const {
QIcon icon
= qvariant_cast<QIcon>
(index.
data(Qt
::DecorationRole));
QSize size
= icon.
actualSize(QSize(MAX_HEIGHT, MAX_WIDTH
));
QRect rect
= qApp
->style
()->alignedRect
(qApp
->layoutDirection
(), Qt
::AlignCenter, size, option.
rect);
painter
->drawPixmap
(rect, icon.
pixmap(QSize(MAX_HEIGHT, MAX_WIDTH
)));
// draw selection here..?
// let the base class implementation draw focus?
}
QSize ItemDelegate
::sizeHint(const QStyleOptionViewItem
& option,
const QModelIndex
& index
) const {
QIcon icon
= qvariant_cast<QIcon>
(index.
data(Qt
::DecorationRole));
return icon.
actualSize(QSize(MAX_HEIGHT, MAX_WIDTH
));
}
// a sensible maximum size for the icons
static const int MAX_HEIGHT = 100;
static const int MAX_WIDTH = 100;
void ItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
QSize size = icon.actualSize(QSize(MAX_HEIGHT, MAX_WIDTH));
QRect rect = qApp->style()->alignedRect(qApp->layoutDirection(), Qt::AlignCenter, size, option.rect);
painter->drawPixmap(rect, icon.pixmap(QSize(MAX_HEIGHT, MAX_WIDTH)));
// draw selection here..?
// let the base class implementation draw focus?
QItemDelegate::drawFocus(painter, option, option.rect);
}
QSize ItemDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
{
QIcon icon = qvariant_cast<QIcon>(index.data(Qt::DecorationRole));
return icon.actualSize(QSize(MAX_HEIGHT, MAX_WIDTH));
}
To copy to clipboard, switch view to plain text mode
Bookmarks