2012-03-22 11 views
6

私は次のような状況に陥っています。チェックボックスもカスタマイズされたカスタムツリーコントロールを作成する必要があります。私は簡単にスタイルシートを使ってツリーコントロールのカスタマイズのほとんどを作った。私はQTreeViewの項目にチェックボックスを追加することに成功しましたが、私はそれらをカスタマイズすることで大きな問題を抱えています - チェックされた状態とチェックされていない状態のためのカスタムイメージを表示する必要があります。QTreeViewの項目のチェックボックスをカスタマイズする

私がこれを行うことができると判断した場所は、QStyledItemDelegateのサブクラスのpaintイベント(CheckBoxItemDelegate :: paintなど)にあります。私が必要とするのは、項目のテキスト、アイコン、およびチェックボックスを表示することです。しかし、問題は次のとおりです:
- 私はスタイルシートを使って設定したアイテムのスタイルを取得できません。そうでなければ、私のテキストは間違った色で描画されます。
- 私は各サブアイテムの矩形(チェックボックス、アイコン、テキスト)を知らない。
- (QModelIndexを指定して)アイテムのアイコンを取得する方法がわかりません。

P.S.私はQTreeView(明らかに)をサブクラス化していました.QFileSystemModelを使って作業しているので、チェックボックス機能を追加するためにサブクラス化しました。

誰でも助けてくれますか? QStyledItemDelegate :: paintは、ツリー項目のチェックボックスのビジュアルを変更するための適切な場所ですか?はいの場合は、私に小さな事例や何かを教えてもらえますか?どうすればいいですか?

答えて

7

これは私が代わりにチェックボックスの(眼が眼がその表示状態を表すために、閉鎖/開放)は、2枚の画像をQTreeView内部チェック可能アイテムをレンダリングする方法である:

ui.myTreeView->setStyleSheet(
    "QTreeView::indicator:unchecked {image: url(:/icons/eye_grey.png);}" 
    "QTreeView::indicator:checked {image: url(:/icons/eye.png);}" 
); 

項目は、チェック可能に設定されなければなりませんコース。お役に立てれば。

+0

これだけです!どうもありがとう! – Feoggou

関連する問題