我想要有一個背景圖像的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