1

行数が少なく、約10列のQTableViewがあります。verticalHeader() に QHeaderView::ResizeToContents resizeMode を設定しました。ただし、表示されている行に対してのみ機能します。たとえば、tableView が右にスクロールされ、一部のデータが変更された場合、行の高さが小さくなります。また、tableView がスクロールバックされた後、行の高さがセルに対して小さすぎるままになり、以前は表示されませんでした。sizeHintForRow(int row) を再実装すると問題が解決することがわかりました。しかし、トップレベル関数を使用してセル (非表示のセルを含む) の高さを計算する良い方法が見つかりません...

元の QTableView::sizeHintForRow() を使用できます。私はそれのほんの一部を変更する必要があります。しかし、d->viewOptionsV4() を呼び出します。私の場合、QStyleOptionViewItemV1 しか取得できません。しかし、itemDelegate の正しい sizeHint を計算するには、このオブジェクトを持つだけでは十分ではありません。

セルの高さを計算する最良の方法について何か考えはありますか?

4

1 に答える 1

0

OK、QTableView::sizeHintForRow() を再実装しました。サイズのヒントは元の方法と同じ方法で計算されますが、この目的のために、viewOptions() メソッドと追加設定を使用して QStyleOptionViewItemV4 を初期化する必要がありました。

より良い解決策はありますか?

于 2012-04-13T16:14:36.390 に答える