我正在使用Python编写的GTK +应用程序。我显然使用PyGtk。我的应用程序是关于视频集合的。这是F点或Picasa,但用于视频。
正如您在这两个应用程序中看到的那样,您在中心区域可以看到所有带有标签缩略图的照片。
在我的应用程序中,我想实现相同的视图。现在,我仅使用以下代码:
一个gtk.Table包含一个VBox,里面VBox一个Pixbuf(我的视频缩略图)和HBox和内HBox,尽可能多Pixbuf的标签。
gtk.Table
VBox
Pixbuf
HBox
它正在工作,但是很丑陋,看来这不是更好的解决方案。
在文档中仔细查看,我发现了两个小部件:IconView和TreeView。但IconView每个“行”只能显示一个pixbuf,而TreeView不能显示为IconView。
IconView
TreeView
我的问题:有没有办法像IconView那样显示TreeView(在网格中)?您将如何实现F-spot在下方排列照片和标签的方式?
最好的方法是坚持使用表和重新实现选择,或者将IconView的自定义版本与自定义cellrenderer一起使用,可以带gtk.HBox()。
有关自定义cellrenderer的一些准则是:
http://faq.pygtk.org/index.py?req=show&file=faq13.045.htp
http://faq.pygtk.org/index.py?req=show&file=faq13.056.htp
pygtk邮件列表上发生了讨论:
htp://old.nabble.com/Drawing-widgets-in-a-custom-cellrenderer-td14207692.html
WWWalter制作示例代码:http : //www.translate.org.za/blogs/walter/zh/content/conquering- cellrendererwidget
根据Ruben Vermeersch的说法,f-pot使用的是IconView的修改版本。可以在这里找到代码:http : //git.gnome.org/browse/f-spot/?h=icon-view- cleanup