1

Qt スタイルシートを使用して、かなり複雑な UI のスタイルを設定しようとしています。これまでのところ順調に進んでいますが、次のような問題が発生しています。

UI の特定の部分をターゲットにする必要があるウィジェット名を特定するにはどうすればよいですか? たとえば、QTableView のセルのフォント サイズを変更したい場合、QTableView を対象とするスタイルを作成する必要がありますか? それともQAbstractScrollArea?それともQAbstractitemDelegateですか?結局のところ、これらのどれも機能していないようです - 私はこれができると思いますが、UI の適切な部分をターゲットにするためのウィジェットの魔法の組み合わせが何であるかを理解する必要があります。

スタイル シート ガイドは多少役立ちますが、多くの情報が不足しているようです。QTableView のカスタマイズの例では、セルの背景色のカスタマイズについてのみ言及されており、フォントの色、サイズ、フェイス、グリッド線などの変更については言及されていません。

ここで何か不足していますか?おそらく、スタイルシートを使用するのは間違った方法ですか? 代替手段 (QStyle から派生) ははるかに複雑に見えるため、そうではありません。

乾杯、

4

1 に答える 1

3

アイテム ビューでのアイテムのレンダリングは、デリゲートによって行われます。Qt 4.4 以降、組み込みのアイテム ビューはデフォルトでスタイル可能なデリゲート実装を使用します (このブログ投稿を参照)。

その場合、モデルの data() メソッドが、外観に関連するItemDataRolesに対して適切な値を返すことを確認してください(Qt::FontRole に特に関心があると思います)。それが十分でない場合、またはそれが不可能な場合は、QStyledItemDelegateをサブクラス化し、その paint() メソッドを再実装する必要があります。

グリッド線に関しては、QTableView にはgridStyleプロパティがあります。

于 2009-09-28T20:06:30.853 に答える