QTableViewのIsUserCheckableフラグと組み合わせたQItemDelegateを使用して、中央揃えのチェックボックス列を描画しています。私はテーブルの行選択を有効にするまで、すべて正常に動作しています。Qt:チェックボックスと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);
}
選択時に正しく塗装されない理由は何ですか?
本当にコードを投稿する必要があります。私はあなたの注文がうんざりしていると思うし、**あなたはチェックボックスをペイントしている後**青い背景をペイントしています – Robert
これは、何をペイントする唯一の関連コードです。問題はあなたが言及したように私の絵画のオーダーに関連していると思いますが、私はこの時点で正しいステップをどのように実装するのかは不明です。誰かがもっと洞察力を提供できると願っています。 – cweston