Qt 如何在QListWidget的QItemDelegate中绘制QPixmap时将其居中

Qt 如何在QListWidget的QItemDelegate中绘制QPixmap时将其居中,qt,qpainter,qlistwidget,qpixmap,qitemdelegate,Qt,Qpainter,Qlistwidget,Qpixmap,Qitemdelegate,我正在QListWidget的QItemDelegate中绘制QPixmap。每个QListWidgetItem具有不同的维度。内部 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) QItemDelegate的函数,我想在QListWidgetItem内绘制中心对齐的QPixmap。option.rect()给出了项目的几何图形,我可以用它计

我正在QListWidget的QItemDelegate中绘制QPixmap。每个QListWidgetItem具有不同的维度。内部

void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) 

QItemDelegate的函数,我想在QListWidgetItem内绘制中心对齐的QPixmap。option.rect()给出了项目的几何图形,我可以用它计算中心位置并相应地绘制,但我想知道更好的对齐方法。有人能告诉我答案吗

您知道QListWidgetItem的维度吗?如果是这样,只需使用以下内容绘制QPixmap:

painter->drawPixmap(
    (item->width() - pixmap->width()) / 2,
    (item->heigt() - pixmap->height()),
    pixmap
);

考虑到所有这些战略布局的Qs,我将假设这个问题是关于Qt的?@gokula你能准确地说出你想要什么吗…@CodyGray Yup。这是关于Qt的。您还可以看到的标签that@shobi我正在QListWidgetItem上绘制QPixmap。我想把它画成中心对齐的方式。我想知道在QListWidgetItem内部是否有任何内置的绘制方法来绘制居中对齐。如果可能的话,你能回答我在@CodyGray上发布的问题吗?我在这个链接()中还有一个问题。如果可能,请回答是的,我们可以通过option.rect计算QListWidgetItem的维度。你提到的代码正是我所说的计算我们自己的代码。我想知道除了计算之外还有什么更好的方法吗ourself@gokulakrishnangopalakrishnan,更好的方法?在我看来,最好的办法是自己动手,这样你就能准确地控制它的外观。我不会委托框架来完成这种简单的渲染(即使对于复杂的渲染,我仍然认为最好的方法是“手动”完成。这会减少框架故障和限制带来的麻烦)。@Laurant谢谢。我还有一个问题()。如果可能的话,你能回答这个问题吗?