Python:在GtkTreeview中更改选择颜色

时间:2019-05-14 09:47:41

标签: gtk3 pygtk gtktreeview

我想在树视图中禁用选择颜色。因此,我想使用modify_base将选定的颜色设置为白色。我找到了this解决方案,但是没有用。这是我的代码:

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 个答案:

答案 0 :(得分:1)

从3.0开始不推荐使用

gtk_widget_modify_base。如果从3.16开始不推荐使用gtk_widget_override_background_color,则可以使用。 documentation指出:

  

如果您希望更改小部件呈现其背景的方式,则应使用自定义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