我想要一个带有背景图像的 GTK TreeView,如下面的模型所示。
我找到了设置小部件背景颜色的方法,但似乎没有设置背景pixbuf
或其他图像格式的方法。
我将 Python 与 PyGTK 一起使用,但任何具有 GTK 绑定的语言的答案都是可以接受的。
带有背景图像的 gtkTreeView 样机:
第一次尝试
根据 Jong Bor 的建议,我尝试了以下方法:
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
观察到以下内容:
选择一行时,部分背景会“显示出来”。
(请注意,我使用的是基于我的模型的背景图像,除了它有一些蓝色,用于测试目的)。
然后我激活了我的 GUI 的一部分,它清除了 TreeView 的内容并重新绘制它,并观察到这一点:
但是,一旦我向 TreeView 添加了一些东西,背景就会消失,所以我仍然不确定这是否朝着正确的方向发展。