我想要有一个背景图像的GTK TreeView,如下面的模型所示。如何添加背景图片到GTK TreeView?
我已经找到了设置窗口背景颜色的方法,但似乎没有设置背景pixbuf
或其他图像格式的方法。
我正在Python中使用PyGTK,但任何语言与GTK绑定的答案是可以接受的。
gtkTreeView的样机与背景图像:基于钟博尔的建议
第一次尝试
,我试过如下:
style = treeview.get_style().copy()
img_pixbuf = gtk.gdk.pixbuf_new_from_file(image_filename)
img_pixmap = img_pixbuf.render_pixmap_and_mask()[0]
for state in (gtk.STATE_NORMAL, gtk.STATE_ACTIVE, gtk.STATE_PRELIGHT,
gtk.STATE_SELECTED, gtk.STATE_INSENSITIVE):
style.bg_pixmap[state] = img_pixmap
treeview.set_style(style)
在第一这似乎没有哈已经有任何影响,但是当在我的TreeView
选择项目我观察到以下:背景的
部分“示出了通过”时,选择的行。 (注意,我使用的是基于我的样机的背景图像,除了它有一些蓝色,用于测试目的)。
我再激活的清除TreeView控件的内容,并重绘我的GUI的一部分,并指出这一点:
但是只要我添加的东西到TreeView的背景消失,所以我仍然不确定这是否朝着正确的方向发展。
是否填充树视图后调用treeview.show_all()使背景可见?此外,一个骇人的建议:因为选择一行可以使背景可见,请执行类似treeview.get_selection()。select_all()来选择所有行。 – 2011-03-22 19:34:34
@Jong show_all()似乎没有效果。此外,除非整个TreeView已满,否则select_all()将无法显示背景,即使此界面不再适用于用户。 : -/ – 2011-03-22 21:33:48