如何使用QAbstractItemDelegate的绘画在QListVIew的单元格中心设置QRect?

时间:2015-01-26 13:58:10

标签: c++ model-view-controller qt5 qstyleditemdelegate

我有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());

但它开始从中心画画。我该如何将这个输出居中? 谢谢

1 个答案:

答案 0 :(得分:1)

它开始从中心画画,因为你告诉它从中心开始画像。您构建QRect

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

正在呼叫QRect(QPoint topLeft, QSize size)

我认为您想要做的是将矩形的中心移动到您已设置为左上角的位置,例如:

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