6. Глава 32. CSS Быстрая справка (Cheat Sheets)
6.1. Введение
GTK3 использует CSS для стилизации виджетов. Это позволяет гибко менять внешний вид интерфейса, не затрагивая код.
6.2. Основы CSS в GTK
CSS-файлы подключаются через GtkCssProvider.
Селекторы работают аналогично веб-CSS: по имени виджета, классам и id.
Классы добавляются через gtk_style_context_add_class().
Идентификаторы через gtk_style_context_set_name().
6.3. Подключение CSS
GtkCssProvider *provider = gtk_css_provider_new();
gtk_css_provider_load_from_path(provider, "style.css", NULL);
gtk_style_context_add_provider_for_screen(
gdk_screen_get_default(),
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
g_object_unref(provider);
6.4. Селекторы и примеры
По типу виджета:
button {
background-color: #3498db;
color: white;
border-radius: 5px;
}
По классу:
gtk_style_context_add_class(gtk_widget_get_style_context(widget), "my-special-button");
В CSS:
.my-special-button {
background-color: #e74c3c;
font-weight: bold;
}
По ID (имя виджета):
gtk_widget_set_name(widget, "main_button");
В CSS:
#main_button {
padding: 10px;
border: 2px solid black;
}
6.5. Основные свойства
background-color — фон
color — цвет текста
border — рамка
border-radius — скругление углов
padding — внутренние отступы
margin — внешние отступы
font-size — размер шрифта
font-weight — жирность шрифта
6.6. Пример полного CSS
window {
background-color: #2c3e50;
}
button {
background-color: #2980b9;
color: white;
border-radius: 6px;
padding: 8px 16px;
}
button:hover {
background-color: #3498db;
}
.danger {
background-color: #c0392b;
}
#submit_button {
font-weight: bold;
font-size: 14px;
}
6.7. Подсказки
Используйте инспектор GTK (GTK_DEBUG=interactive), чтобы видеть, какие классы и свойства применяются.
Можно создавать несколько CSS-файлов для разных тем.
Помните, что CSS применяется только после вызова gtk_widget_show() или gtk_widget_show_all().
Для динамического изменения стиля — используйте gtk_style_context_add_class()/remove_class().
6.8. Ресурсы и ссылки
Официальная документация CSS в GTK: https://docs.gtk.org/gtk3/css-overview.html
Руководство по CSS для GTK: https://developer.gnome.org/gtk3/stable/chap-css-overview.html
Примеры тем и стилей: https://github.com/GNOME/gtk-css-examples
GTK Inspector (для дебага CSS): https://docs.gtk.org/gtk3/inspectable.html
—