Как установить QRect в центре ячейки в QListVIew с помощью краски QAbstractItemDelegate?

У меня есть QListVIew и делегат для рисования списка. Я рисую текст в центре ячейки.
так я и делаю

void Delegate::paint(QPainter *painter, const QStyledOptionViewItem        &option, const QModelIndex &index )
{
.
.
.
QRect textRect(option.rect.center(),QSize(option.rect.width(),option.rect.height());

paiter->drawText(textRect,text,QTextOption());

но он начинает рисовать из центра. как я могу центрировать этот вывод?
благодарю вас

0

Решение

Он начинает рисовать из центра, потому что вы говорите ему начать объект из центра. Ваша конструкция QRect:

QRect textRect(option.rect.center(),QSize(option.rect.width(),option.rect.height());

Звонит QRect(QPoint topLeft, QSize size).

Я думаю, что вы хотите сделать, это переместить центр вашего прямоугольника в точку, которую вы указали в качестве верхнего левого угла, что-то вроде:

textRect.moveCenter(option.rect.center());
1

Другие решения


По вопросам рекламы [email protected]