GTK + 3 изменить цвет текста в метке (Raspberry Pi)

Я пытаюсь изменить цвет текста в метке на лету во время выполнения. Я пытался применить стиль CSS, я пробовал два устаревших метода, и ни один из них не работает. Можно ли это сделать, а если нет, то почему что-то такое простое недоступно?

Применение стиля CSS на лету частично работает: когда я указываю

.pinkStyle { background-color: rgb(241, 135, 135); color: black; } 

во время выполнения я вижу, что фон становится розовым. Но текст остается белым.

О, черт возьми. Я документирую это, чтобы никто не страдал так, как я страдал.

Если вы хотите контролировать свой текст во время выполнения, ни при каких обстоятельствах не используйте Glade, чтобы установить цвет переднего плана с помощью Редактировать атрибуты. Если вы это сделаете, вы ПОСТОЯННО установите цвет текста таким образом, чтобы ни изменения css, ни разметка панго, ни устаревшие функции, такие как gtk_widget_modify_fg, не могли касаться во время выполнения.

Вы все еще можете использовать css для изменения цвета фона метки, но чтобы получить собственный цвет и фон текста, я использую gtk_label_set_markup с

  

с успехом. ПОСЛЕ удаления всех атрибутов со всех моих ярлыков в Glade.

GTK – это кошмар; Я никогда не встречал ничего в Linux до того, что заставило меня долго мечтать о Windows, но это сделало это.

GTK уродлив, отчасти из-за всех устаревших вещей. Они не решали проблемы, они исправлялись вокруг них.

Во всяком случае, это только что началось, это также на форумах raspberrypi.org. err – это int, btcprice и oldprice – это числа с плавающей запятой, разметка и errstr – это gchar.

 if (err == 0) { if (btcprice > oldprice) markup = g_strdup_printf("%.2f",btcprice); else markup = g_strdup_printf("%.2f",btcprice); } else { markup = g_strdup_printf("%s",errstr); } gtk_label_set_markup(GTK_LABEL(pLabel),markup); 

Цвет текста – красный, если цена падает, зеленый, если он растет, оранжевый, если есть ошибка. g_strdup_printf () немного похож на printf или snprintf, но он получает float в строку, цвет которой меняется в зависимости от значения float.