【问题标题】:Python: Changing the select colour in a GtkTreeviewPython:更改 GtkTreeview 中的选择颜色
【发布时间】:2019-05-14 09:47:41
【问题描述】:

我想在树视图中禁用选择颜色。所以我想用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))

【问题讨论】:

  • pygtk 是 gtk 2,gtk3 标签是 gtk 3。你用的是哪个版本?
  • 我使用来自 PyGObject 的 Gtk。所以Gtk3。

标签: gtk3 pygtk gtktreeview


【解决方案1】:

gtk_widget_modify_base 自 3.0 起已被弃用。如果自 3.16 起未弃用它,您可以使用 gtk_widget_override_background_colordocumentation 声明:

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

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多