QTableView の IsUserCheckable フラグと組み合わせて QItemDelegate を使用して、中央のチェックボックス列を描画しています。テーブルの行選択を有効にするまで、すべて正常に機能しています。
選択が行われると、青色の選択背景だけがペイントされ、チェックボックスは表示されなくなります。
以下は、デリゲート内からチェックボックスを描画するために使用する私のコードです。
void CheckboxDelegate::drawCheck(QPainter* painter, QStyleOptionViewItem const& option, QRect const& rect, Qt::CheckState state) const
{
QSize size = check(option, option.rect, Qt::Checked).size();
QRect checkboxRect = QStyle::alignedRect(option.direction, Qt::AlignCenter, size, option.rect);
QItemDelegate::drawCheck(painter, option, checkboxRect, state);
}
選択が行われたときにこれが正しく描画されない理由についてのアイデアはありますか?