2014-03-31 1 views
1

저는 GTK + 용 Python 바인딩을 사용하여 뮤직 플레이어 프론트 엔드를 작성하고 있습니다. 재생 목록은 TreeStore이며 최상위 항목으로 표시된 앨범과 자녀가 트랙을 표시합니다.GTK + 트리보기에서 이기종 데이터 표시

음악 디렉토리의 스캔을 분리하고 음악 파일의 태그를 읽으려는 경우 태그를 스캔하는 직감에 따라 트리 저장소에 항목을 추가하는 것보다 시간이 많이 걸립니다. 따라서 나는 재생 목록을 검토하고 태그를 채 웁니다 별도의 스레드를 실행하는 것입니다. 이를 위해, 모델 항목에는 다음과 같은 열이 구성됩니다 : 음악 디렉토리가 초기에 통과되면

[ 'file_path', 'tags_filled', 'album', 'title', (more items for tags) ] 

file_path이 가득하고 False-tags_filled 설정됩니다. 태그 필러 스레드는 tags_filledTrue으로 설정하고 나머지 열은 음악 파일의 해당 값으로 설정합니다.

설명 모델을 표시 할 때 tags_filled 속성을 기반으로 행을 다르게 표시하려고합니다. False 일 때 전체 위젯 너비에 걸쳐 파일 경로 만 표시하면됩니다. True 일 때 태그 값만 별도의 열에 표시하고 싶습니다. 이 같은

뭔가 : 당신은 내가이 구현을 통해 갈 수있는 방법을

| Artist | Album | Date | Title      | Duration | 
|--------+--------+------+----------------------------+----------| 
| AC/DC | T.N.T. | 1975 | It's A Long Way To The Top | 5:15  | <-- scanned 
| music/AC-DC/1975 - T.N.T/02 - Rock'N'Roll Singer.MP3   | <-- not yet scanned 

을 제안 할 수 있습니까?

답변

1

아직 트리보기의 셀을 병합 할 수 없습니다. 테이블 (Gtk 3.4 이후 사용되지 않음)이나 그리드를 사용해야합니다. GTK 3의 경우 Here's how to use these widgets을 사용하거나 PyGTK를 사용하는 경우 PyGTK 2.0 Reference Manual을 확인하십시오.