c语言 - GTK 背景全高不起作用



我需要你的帮助,我正在尝试在TextView的整个长度上设置背景颜色。我正在尝试使用此声明来做到这一点:

gtk_text_buffer_create_tag(buffer, "white_bg", "background-full-height", TRUE, "background", "white","foreground", "blue", NULL);

当我使用以下命令设置文本时:

  gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,"SAMPLE TEXT", -1, "white_bg", "left",  NULL);

它设置蓝色字体,白色背景,但不在整个长度上设置白色bg,仅在文本下设置。

你能帮我弄清楚我做错了什么吗?

此行为是设计使然:自定义标签时,它会影响具有该标签的文本。要修改整个构件的背景,请使用 gtk_widget_modify_bg 。例如(未经测试):

GdkColor white;
gdk_color_parse("white", &white);
gtk_widget_modify_bg(textview, GTK_STATE_NORMAL, &white);

请注意,文档声称gtk_widget_modify_bg被弃用以支持gtk_widget_override_background_color,而又被弃用以支持特定于应用程序的GtkStyleProvider和CSS样式类 - 没有一个明确的例子来说明如何做到这一点。

最新更新