在GTK +树视图中显示异构数据

时间:2014-03-31 20:02:06

标签: python gtk

我正在使用Python绑定为GTK +编写音乐播放器前端。播放列表是TreeStore,其中专辑由顶级项目表示,并由其子项跟踪。

我想分开扫描音乐目录和阅读音乐文件的标签,这是基于扫描标签比仅仅将项目添加到树存储更耗时的预感。因此,我打算运行一个单独的线程,遍历播放列表并填写标签。为此,模型项将包含以下列:

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

最初遍历音乐目录时,仅填充file_pathtags_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

您能否建议我如何执行此操作?

1 个答案:

答案 0 :(得分:1)

无法合并树视图的单元格。您必须使用表格(自Gtk 3.4以来已弃用)或网格。如果您使用的是PyGTK,请查看适用于GTK 3的Here's how to use these widgets或查看PyGTK 2.0参考手册。