Я хотел бы иметь GTK TreeView с фоновым изображением, как показано на макете ниже.
Я нашел методы для установки фона цвет виджетов, но естьне похоже на способ установки фона pixbuf
или другого формата изображения.
Я использую Python с PyGTK, но ответ на любом языке с привязками GTK приемлем.
Макет gtkTreeView с фоновым изображением :
![Mockup of GTK TreeView with background image](https://i.stack.imgur.com/dHvsa.png)
Первая попытка
Основываясь на совете Чон Бора, я попробовалследующее:
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
я заметил следующее:
![Selected row showing part of the background image](https://i.stack.imgur.com/tEiU8.png)
Часть фона «просвечивает» при выделении строки.
(Обратите внимание, что я использую фоновое изображение на основе моего макета, за исключением того, что оно имеет некоторый синий цвет, для целей тестирования).
Затем я активировал часть моего графического интерфейса, которая очищает содержимоеf TreeView и перерисовывает его, и заметил это:
![Tiled background visible](https://i.stack.imgur.com/q12ww.png)
Однако, как только я добавляю что-то в TreeView, фон исчезает, поэтому я все еще не уверен, если этоидти в правильном направлении.