How to center QPixmap while Painting it inside QIt

2019-09-21 00:49发布

问题:

I'm painting a QPixmap inside the QItemDelegate of QListWidget. Each QListWidgetItem is of different dimensions. Inside the

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

function of QItemDelegate, I want to paint QPixmap with center Alignment inside the QListWidgetItem. option.rect() gives the geometry of the item with which I can calculate the center position and paint accordingly, but I want to know the better approach for this alignment.Can some one let me know the answer?

回答1:

Do you know the dimensions of your QListWidgetItem? If so, just paint the QPixmap yourself with something like:

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