【发布时间】:2011-11-03 18:34:22
【问题描述】:
我正在使用委托在 QTableView 中显示来自 QAbstractTableModel 的 QPixmap,如下所示:
void LabelDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QPixmap pixmap = index.data(Qt::DisplayRole).value<QPixmap>();
QRect rect = option.rect;
rect.adjust(rect.width()/3, 0, -rect.width()/3, 0);
painter->drawPixmap(rect, pixmap, pixmap.rect());
}
但是,我希望它确保单元格足够大以显示整个 QPixmap。我尝试使用 sizeHint 函数:
QSize LabelDelegate::sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const
{
std::cout << "sizeHint()" << std::endl;
unsigned int sideLength = 300;
return QSize(sideLength, sideLength);
}
但它似乎没有调整单元格的大小。如何强制单元格大小匹配 QPixmap 大小?
谢谢,
大卫
【问题讨论】: