GTK treeview:选中时禁用突出显示

GTK treeview: disable highlight when selected

当为 GtkTreeView 小部件选择某行时,我尝试禁用该行的高亮显示(默认为蓝色背景和白色文本颜色)。我试图将 STATE_SELECTED 更改为

GtkWidget   *treev_iew;
GdkColor black;
GdkColor white;

gdk_color_parse ("white", &white);
gdk_color_parse ("black", &black);
...
treeview = gtk_tree_view_new();
...
gtk_widget_modify_text(GTK_WIDGET(tree_view),GTK_STATE_SELECTED,&black);
gtk_widget_modify_bg(GTK_WIDGET(tree_view),GTK_STATE_SELECTED, &white);
...

但这似乎不起作用。 背景变为白色,但字体颜色保持白色(不可读!)。 知道为什么吗?

我查看了可用功能的 GTK 小部件定义(仅供参考,如果您使用的是不同版本的 GTK,我查看的版本是 GTK3)。在那里,它提到函数“gtk_widget_modify_text()”已被弃用,应该使用“gtk_widget_override_color() 函数。您可以尝试替换。

请注意,从 3.16 版开始,此功能也已弃用,但可能仍然有效。处理背景颜色、前景色、文本颜色等属性的前进方向是通过在程序中使用 CSS 定义和 CSS 提供程序。

希望对您有所帮助。

此致。