1. ホーム
  2. c++

[解決済み] QAbstractItemDelegateのpaintで、QListVIewのセルの中心にQRectを設定する方法を教えてください。

2022-02-16 16:28:20

質問

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