2011-10-25 6 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') 

을 시도하지만 아무 짓도 안 했어요.

편집 : 아이템을 선택할 때 나는 그것을 홀수로 태그를 다시 붙일 수 있고, 선택되지 않은 경우 되돌아 갈 수 있다고 생각합니다.하지만 그것은 오히려 우아하지 않습니다.

  • 이, 그리고 (선택된 행에 대해)

을 원하는 색상으로 태그를 생성 트 리뷰에서 가상 이벤트를 잡을 : 나무의 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

    @foosion - 선택한 행에만 태그 지정/태그 지정 안 함 * 제안 *.즉, 모든'oddrow' 태그를 그대로두고 선택한 행에 두 번째 태그를 추가하십시오. 내가 잘 모르겠지만 한 줄에 두 개의 태그가 있다면 어떤 일이 일어날 것인가? –

    +0

    내가하고있는 일 중 일부는 행을 제거하고, 행을 추가하고, 행을 이동하는 것이므로 모든 것을 태그 지정하는 것이 종종 의미가 있습니다. 또 다른 방법은 선택한 행을 태그를 해제하여 (선택 배경이 오른쪽으로 보이게하거나 선택한 색상으로 태그를 지정하는) 선택을 변경하면 다시 태그를 지정하는 것입니다. – foosion

    관련 문제