是否可以绘制像 GtkIconView 一样列出的 GtkTreeView?
我正在开发一个用 python 编写的 GTK+ 应用程序。我显然使用 PyGtk。我的应用程序是关于视频集合的。它类似于 F-spot 或 Picasa,但用于视频。
正如您在这两个应用程序中所看到的,您有一个中心区域,您可以在其中查看所有带有标签缩略图的照片。
在我的应用程序中,我想实现相同的视图。现在我只是使用这个:
一个 gtk.Table
包含一个 VBox
,在 VBox
内有一个 Pixbuf
(我的视频缩略图)和一个 HBox
,并且在 HBox
内有与标签一样多的 Pixbuf
。
它有效,但很丑陋,而且似乎不是更好的解决方案。
深入查看文档,我发现了两个接近我需要的小部件:IconView
和 TreeView
。但是 IconView
每“行”只能显示一个 pixbuf,并且 TreeView 不能像 IconView
那样显示为网格。
我的问题:有没有办法像 IconView(在网格中)一样显示 TreeView? 您将如何实现 F-spot 方式来排列照片和标签?
I am working on a GTK+ application written in python. I obviously use PyGtk. My application is about collections of videos. It's a kind of F-spot or Picasa, but for video.
As you can see in these two apps, you have a central area where you can see all of your photos with tag thumbnails under.
In my app, I want to implement the same kinf of view. For now I simply use this:
A gtk.Table
containing a VBox
, inside the VBox
a Pixbuf
(my video thumbnail) and a HBox
, and inside the HBox
, as many Pixbuf
as tags.
It's working but it's ugly and It seems like It's not the better solution.
Looking deeply in the docs, I have found two widgets near my neeeds: IconView
and TreeView
. But IconView
can only display one pixbuf per "row" and TreeView don't display as a grid like IconView
.
My question: Is there a way to display a TreeView like an IconView (in a grid) ?
How would you implement the F-spot way of arranging photos and tags under?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
IconView
就是您所需要的。在ListStore
中,每一行仅代表一个pixbuf,但IconView
会调整网格中的图像。这是一个小例子,使用您想要作为参数显示的图像文件启动它,例如:。
IconView
is what you need. In theListStore
every row represent just one pixbuf but theIconView
adjusts the images in a grid. Here a small example, launch it with the image files you want to show as arguments, for example:.
最好的方法是要么坚持使用表格并重新实现选择,要么使用 IconView 的自定义版本和自定义单元格渲染器,可以使用 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/en/content/conquering-cellrendererwidget
根据 Ruben Vermeersch 的说法,f-pot 使用 IconView 的修改版本。代码可以在这里找到:
http://git.gnome.org/browse/f -spot/?h=icon-view-cleanup
The best approach is either to stick with a table and reimplement selections or Use a custom version of IconView with a custom cellrenderer wich can take gtk.HBox().
Some guidelines about custom cellrenderer are :
http://faq.pygtk.org/index.py?req=show&file=faq13.045.htp
http://faq.pygtk.org/index.py?req=show&file=faq13.056.htp
a discuss occured on pygtk mailing list :
htp://old.nabble.com/Drawing-widgets-in-a-custom-cellrenderer-td14207692.html
WWWalter make a sample code :
http://www.translate.org.za/blogs/walter/en/content/conquering-cellrendererwidget
According to Ruben Vermeersch, f-pot use a modified version of IconView. Code can be found here :
http://git.gnome.org/browse/f-spot/?h=icon-view-cleanup