{
QVariant value
= index.
data(Qt
::SizeHintRole);
if (value.isValid())
return qvariant_cast<QSize>(value);
QRect decorationRect
= rect
(option, index, Qt
::DecorationRole);
QRect displayRect
= rect
(option, index, Qt
::DisplayRole);
QRect checkRect
= rect
(option, index, Qt
::CheckStateRole);
doLayout(option, &checkRect, &decorationRect, &displayRect, true);
return (decorationRect|displayRect|checkRect).size();
}
QSize QItemDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QVariant value = index.data(Qt::SizeHintRole);
if (value.isValid())
return qvariant_cast<QSize>(value);
QRect decorationRect = rect(option, index, Qt::DecorationRole);
QRect displayRect = rect(option, index, Qt::DisplayRole);
QRect checkRect = rect(option, index, Qt::CheckStateRole);
doLayout(option, &checkRect, &decorationRect, &displayRect, true);
return (decorationRect|displayRect|checkRect).size();
}
To copy to clipboard, switch view to plain text mode
If it returns actual size it should be possible to get the position via loop and sizeHints()
Bookmarks