我正在使用Python绑定为GTK +编写音乐播放器前端。播放列表是TreeStore,其中专辑由顶级项目表示,并由其子项跟踪。
我想分开扫描音乐目录和阅读音乐文件的标签,这是基于扫描标签比仅仅将项目添加到树存储更耗时的预感。因此,我打算运行一个单独的线程,遍历播放列表并填写标签。为此,模型项将包含以下列:
[ 'file_path', 'tags_filled', 'album', 'title', (more items for tags) ]
最初遍历音乐目录时,仅填充file_path
,tags_filled
设置为False
。标记填充程序线程会将tags_filled
设置为True
,将其余列设置为音乐文件中的值。
在显示所描述的模型时,我希望根据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
您能否建议我如何执行此操作?
答案 0 :(得分:1)
无法合并树视图的单元格。您必须使用表格(自Gtk 3.4以来已弃用)或网格。如果您使用的是PyGTK,请查看适用于GTK 3的Here's how to use these widgets或查看PyGTK 2.0参考手册。