2012-05-22 89 views
1

我正在使用Gtk 2.0。更改GTK中標籤的文本顏色C

我正在嘗試更改標籤的文本顏色/字體顏色。

它有多難?我只是想嘗試像gtk_widget_modify_text等無濟於事。我想通過添加一個包含所有樣式的簡單資源文件來使用「android」或「Qt」方式。我應該在什麼地方添加這個文件(.rc?)?如何解析這個文件?

我已經寫了很多小部件的應用程序,我不想改變/重做它們。有人可以給我看一個簡單的例子嗎?

我甚至嘗試過從網絡上的Pango例子,但問題是我的標籤中的文本不斷變化,因此我無法遵循這一點。 請幫忙。這是我到目前爲止嘗試過的,沒有成功的。

GtkWidget *label1;  
    label1= gtk_label_new(" "); 
    gtk_box_pack_start (GTK_BOX(box1), label1,TRUE,TRUE, 0); 

    GdkColor color; 

    gdk_color_parse ("white", &color); 


    gtk_widget_modify_text (GTK_WIDGET(label1), GTK_STATE_NORMAL, &color); 

    gchar *stringMarkupText = "<span foreground=\"white\"> <b>Bold</b></span>"; //white color and bold--> the length of this text is fixed by number of spaces. I need to call a function that would set this text on a g_signal_connect so do not want to fix spaces!! 
    gchar *stringPlainText; 

    PangoAttrList *attrList; 

    pango_parse_markup(stringMarkupText, -1, 0, &attrList, &stringPlainText, NULL, NULL); 
    gtk_label_set_attributes(GTK_LABEL(label1), attrList); 
+0

我似乎有單選按鈕字體顏色相同的問題,以及:(有沒有gtk_radio_button_set_attributes..wht辦? – user907810

回答

2

從我的觀點來看,在這種情況下可以使用GTK資源文件(rc文件)。

您可以使用gtk_rc_parse函數加載您的rc文件。

void gtk_rc_parse(const gchar *filename); 
+0

好,我這樣做是與RC文件。不過,我有一個問題,如果我設置整個窗口的背景顏色爲黑色,窗口內的按鈕不能改變爲任何其他顏色(保持黑色),儘管設置了bg參數。我應該如何解決這個問題? – user907810

+0

@ user907810你可以嘗試寫你的rc文件這個:'style「style1」{bg [NORMAL] = {0.5,0.5,0.5}} style「style2」{bg [NORMAL] = {0.7,0.5,0.2}} widget_class「GtkWindow * GtkButton」style「style1」widget_class 「GtkWindow」style「style2」' – fabregaszy

+0

嗨fabregaszy,請看看這篇文章http://stackoverflow.com/questions/10722708/changing-gtkbut ton-color-when-gtkwindow-is-change其中我正嘗試使用rc文件處理窗口中的表中包含的按鈕。這裏有一些問題,我不知道爲什麼我不能更改屬性。請幫忙。 – user907810

相關問題