2011-10-25 22 views
4

私のttkツリービューの選択された行は、暗い青色の背景としてテキストの白が表示されます。ttk treeview:選択された色

self.tree.item(item, tags=('oddrow')) 

例えば、色としてタグを設定します:、

self.tree.tag_configure('oddrow', background='lightgrey') 

とoddrowを選択し、私は、例えば、タグで行の色を設定した場合

テキストが黒から白に変化している間は、背景色は変化しません(ライトグレーのままです)。行に色付きのタグが付いているかどうかにかかわらず、選択した行の背景を濃い青色にするにはどうすればよいですか?

行がタグ付けされていない行は、黒色で表示されるか、または濃い青色では白色として表示されます。

私は

ttk.Style().configure('Treeview', selectbackground='blue') 

を試してみましたが、それは何もしませんでした。

EDIT:アイテムを選択すると、奇妙で​​ないタグとして再タグ付けして、選択されていないときに戻ってきますが、それはむしろ控えめです。ツリーのTkDocs tutorialから

+0

'self.tree.tag_configure( 'oddrow'、background = 'lightgrey'、selectbackground = 'blue')'を試しましたか? –

+0

@StevenRumbalski:_tkinter:TclError:不明なオプション "-selectbackground" – foosion

+0

http://www.tcl.tk/man/tcl/TkCmd/ttk_treeview.htm#M69でドキュメントを読んでください。タグは、前景、背景、フォント、およびイメージのみをサポートします。悪いアドバイスをして申し訳ありません。 –

答えて

2

、それはあなたができるようだ:

  • ツリービューから仮想イベントをキャッチ、そして、(選択された行のための)希望の色

でタグを作成します。それは行からタグ割り当て解除フォーカス

  • を取得したとき

    • 行にタグを割り当てます

      tree.tag_configure('ttk', background='yellow') 
      tree.tag_bind('ttk', '<1>', itemClicked); # the item clicked can be found via tree.focus() 
      

      注:チュートリアルからいくつかのコードとともに

      The treeview will generate virtual events "<TreeviewSelect>", "<TreeviewOpen>" 
      and "<TreeviewClose>" which allow you to monitor changes to the widget made 
      by the user. You can use the "selection" method to determine the current 
      selection (the selection can also be changed from your program). 
      

      :それは


    のフォーカスを失ったときにここで私が使用ドキュメント内の特定の段落があります:これがうまくいくかどうかはわかりません。私は何をしたのかを見るためにコードを掘り起こす必要があります。

  • +0

    私のEDITではやや暗に述べたように、それは基本的に私がやったことです。行が選択されたとき(で監視されている)、以前の変更をクリアするために、すべての行を別の色で再タグ付けし、デフォルトの選択色が正しく表示されるように普通の背景で現在の行にタグを付けます。 – foosion

    +0

    @吹き出し - 私は、選択した行のみをタグ付けする/タグを付けることを提案するつもりでした。つまり、すべての 'oddrow'タグの状態をそのままにして、選択した行に2番目のタグを追加します。私が確信していないことは、あなたが1つの行に2つのタグを持っていればどうなりますか? –

    +0

    私がやっていることのいくつかは、行の削除、行の追加、行の移動などです。もう1つの選択肢は、選択された行をタグなしにして(選択背景が右に見えるようにするか、またはそれに選択色でタグを付ける)、選択が変更されたときにタグを取り戻すことです。 – foosion