Python: изменение выбранного цвета в GtkTreeview - PullRequest
0 голосов
/ 14 мая 2019

Я хочу отключить выделение цвета при просмотре дерева.Поэтому я хочу установить выбранный цвет на белый с modify_base .Я нашел это решение, но оно не работает.Это мой код:

import gi
from gi.repository import Gdk, Gtk
gi.require_version('Gtk', '3.0')

treestore = InterfaceTreeStore()
treeview = Gtk.TreeView()
treeview.set_model(treestore)

treeview.modify_base(Gtk.StateFlags.SELECTED, Gdk.Color(red=65535, blue=65535, green=65535))

1 Ответ

1 голос
/ 15 мая 2019

gtk_widget_modify_base устарело с версии 3.0.Вы могли бы использовать gtk_widget_override_background_color, если это не устарело с 3.16.Это документация гласит:

Если вы хотите изменить способ отображения фона виджетом, вы должны использовать собственный стиль CSS

Однако,если вы хотите отключить выбор цвета, самый простой способ - отменить выбор.

Ваш "changed" обратный вызов сигнала может выглядеть примерно так:

def changed_cb(selection):
    model, iter = get_selected (selection)
    # if there is no selection, iter is None
    if iter is None:
        return
    # do something useful
    # now unselect
    path = model.get_path(iter)
    selection.unselect_path(path)
    path.free() # not sure if python frees it automatically
...