如何用QAbstractItemDelegate的画图在QListVIew的单元格中心设置QRect?
How to set QRect in the center of cell in QListVIew with QAbstractItemDelegate’s paint?
我有 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());
但它从中心开始绘制。我怎样才能使这个输出居中?
谢谢
它从中心开始绘制,因为你告诉它从中心开始绘制对象。您构建的 QRect
:
QRect textRect(option.rect.center(),QSize(option.rect.width(),option.rect.height());
正在呼叫 QRect(QPoint topLeft, QSize size)
。
我认为您想做的是将矩形的中心移动到您设置为左上角的点,例如:
textRect.moveCenter(option.rect.center());
我有 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());
但它从中心开始绘制。我怎样才能使这个输出居中? 谢谢
它从中心开始绘制,因为你告诉它从中心开始绘制对象。您构建的 QRect
:
QRect textRect(option.rect.center(),QSize(option.rect.width(),option.rect.height());
正在呼叫 QRect(QPoint topLeft, QSize size)
。
我认为您想做的是将矩形的中心移动到您设置为左上角的点,例如:
textRect.moveCenter(option.rect.center());