2016-01-25 57 views
0

我需要你的幫助,我試圖在TextView的整個長度上設置背景顏色。 我想這個宣言做到這一點:GTK background-full-height dosn't

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整體上長度,只在文字下。

你能幫我弄清楚我做錯了什麼嗎?

回答

0

此行爲是設計用於:當您自定義標籤時,它會影響帶有該標籤的文本。要修改整個小部件的背景,請使用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樣式類過時 - 無清楚如何做的例子。

+0

使用GtkStyleProvider子類GtkCssProvider將自定義CSS注入到GtkStyleContext(當前小部件或默認屏幕的)中。 GtkStyleContext文檔*應該*告訴你如何指定CSS。這全部用於GTK + 3;如果你需要GTK + 2,那麼我不會知道。 – andlabs