Изменить текстовый цвет этикетки в GTK в C

StackOverflow https://stackoverflow.com//questions/10699294

  •  12-12-2019
  •  | 
  •  

Вопрос

Я использую GTK 2.0.

Я пытаюсь изменить цвет текста / цвет шрифта метки.

Насколько сложно он может получить?Я просто пытаюсь такие вещи, как gtk_widget_modify_text и т. Д. Нерешится.Я хочу пойти на «Android» или «QT» Way, скажем, добавляя простой файл ресурсов со всеми стилями.Где и как что (.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);
.

Это было полезно?

Решение

С моей точки зрения, вы можете использовать файл ресурсов GTK (RC-файл) в этом случае.

Вы можете использовать функцию GTK_RC_PARSE для загрузки файла RC.

void gtk_rc_parse(const gchar *filename);
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top