我需要你的帮助,我正在尝试在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样式类 - 没有一个明确的例子来说明如何做到这一点。