GTK прекратил использовать имена типов виджетов в качестве CSS имен узлов в версии 3.18 или около того, и с этого момента вы должны проверить документацию по классам C, чтобы узнать, какие имена узлов, классы и т. Д. Доступны для тема. В в данном случае это будет
label { [...] }
Я также рекомендую загружать StyleContext в Display, а не отдельные виджеты. Итак, в основном, используйте современную версию GTK (в идеале последняя версия 3.24.x, но не менее 3.22) и задокументированные селекторы CSS, и вам будет хорошо go.
Сделав это, если вы хотите повлиять только на отдельные виджеты, просто добавьте к ним CSS классы и выберите эти классы:
gtk_style_context_add_class(my_label_style_context, "the-precious");
, а затем выберите CSS на
label.the-precious { [...] }
или просто
.the-precious { [...] }
Более полный пример доступен в этот другой ответ .
Это лучше, чем добавление StyleContexts к отдельным виджетам, потому что это обычно не работает так, как ожидают пользователи (с точки зрения наследования и т. д.).
Вы также можете установить CSS ID для виджетов (например, #the-precious
), но это используется реже, а IMO не действительно нужен в GTK и еще больше ошибок для настройки IMO.
Обратите внимание, что тема GTK по умолчанию, Adwaita, была обновлена в течение 3.24 - поэтому, если вы хотите настроить тему своего приложения на это, лучше всего сделать это из последней доступной версии 3.24 - и надеяться, что она больше не изменится в 3.х ...