Стили CSS не применяются в языке GTK4 C. ⇐ CSS
Стили CSS не применяются в языке GTK4 C.
Я пытаюсь добавить цвета к двум кнопкам в графическом интерфейсе gtk4, написанном на языке C. В документации я нашел функции для загрузки и установки имени класса CSS для двух кнопок. Но по какой-то причине стили не применяются к моему графическому интерфейсу, и я получаю только окно с белым фоном и белыми кнопками.
#include static void on_active(GtkApplication *app){ // Создаём новое окно и сетку GtkWidget *s_window = gtk_application_window_new (приложение); gtk_window_set_default_size (GTK_WINDOW (s_window), 800, 800); GtkWidget *s_grid = gtk_grid_new(); gtk_grid_set_column_spacing (GTK_GRID (s_grid), 15); gtk_grid_set_row_spacing (GTK_GRID (s_grid), 15); gtk_widget_set_halign (s_grid, GTK_ALIGN_CENTER); gtk_widget_set_valign (s_grid, GTK_ALIGN_CENTER); gtk_widget_set_heexpand (s_grid, TRUE); // Создаем поставщика для стилизации GtkCssProvider *cssProvider = gtk_css_provider_new(); gtk_css_provider_load_from_file(cssProvider, g_file_new_for_path ("styles.css")); gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_USER); gtk_widget_set_visible (GTK_WIDGET (s_window), ИСТИНА); // Создать метку GtkWidget *label = gtk_label_new("Привет, мир!"); // Создаем кнопки: PvP и PvAI GtkWidget *button1 = gtk_button_new_with_label («1»); gtk_widget_class_set_css_name(GTK_WIDGET_GET_CLASS(button1), "btn1"); GtkWidget *button2 = gtk_button_new_with_label ("2"); gtk_widget_class_set_css_name(GTK_WIDGET_GET_CLASS(button2), "btn2"); // Устанавливаем размер и положение кнопки gtk_grid_attach (GTK_GRID (s_grid), метка, 50, 0, 40, 10); gtk_grid_attach(GTK_GRID(s_grid), button1, 50, 50, 40, 10); gtk_grid_attach(GTK_GRID(s_grid), button2, 50, 125, 40, 10); gtk_window_set_child (GTK_WINDOW (s_window), s_grid); gtk_window_present (GTK_WINDOW (s_window)); } int main (int argc, char *argv[]) { // Создаём новое приложение GtkApplication *app = gtk_application_new ("com.example.GtkApplication", G_APPLICATION_FLAGS_NONE); g_signal_connect (приложение, «активировать», G_CALLBACK (on_active), NULL); вернуть g_application_run (G_APPLICATION (приложение), argc, argv); } вот style.css
btn1 { цвет: зеленый; } бтн2 { цвет: сине-фиолетовый; } Почему этот код не применяет CSS к приложению с графическим интерфейсом?
Я пытаюсь добавить цвета к двум кнопкам в графическом интерфейсе gtk4, написанном на языке C. В документации я нашел функции для загрузки и установки имени класса CSS для двух кнопок. Но по какой-то причине стили не применяются к моему графическому интерфейсу, и я получаю только окно с белым фоном и белыми кнопками.
#include static void on_active(GtkApplication *app){ // Создаём новое окно и сетку GtkWidget *s_window = gtk_application_window_new (приложение); gtk_window_set_default_size (GTK_WINDOW (s_window), 800, 800); GtkWidget *s_grid = gtk_grid_new(); gtk_grid_set_column_spacing (GTK_GRID (s_grid), 15); gtk_grid_set_row_spacing (GTK_GRID (s_grid), 15); gtk_widget_set_halign (s_grid, GTK_ALIGN_CENTER); gtk_widget_set_valign (s_grid, GTK_ALIGN_CENTER); gtk_widget_set_heexpand (s_grid, TRUE); // Создаем поставщика для стилизации GtkCssProvider *cssProvider = gtk_css_provider_new(); gtk_css_provider_load_from_file(cssProvider, g_file_new_for_path ("styles.css")); gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_USER); gtk_widget_set_visible (GTK_WIDGET (s_window), ИСТИНА); // Создать метку GtkWidget *label = gtk_label_new("Привет, мир!"); // Создаем кнопки: PvP и PvAI GtkWidget *button1 = gtk_button_new_with_label («1»); gtk_widget_class_set_css_name(GTK_WIDGET_GET_CLASS(button1), "btn1"); GtkWidget *button2 = gtk_button_new_with_label ("2"); gtk_widget_class_set_css_name(GTK_WIDGET_GET_CLASS(button2), "btn2"); // Устанавливаем размер и положение кнопки gtk_grid_attach (GTK_GRID (s_grid), метка, 50, 0, 40, 10); gtk_grid_attach(GTK_GRID(s_grid), button1, 50, 50, 40, 10); gtk_grid_attach(GTK_GRID(s_grid), button2, 50, 125, 40, 10); gtk_window_set_child (GTK_WINDOW (s_window), s_grid); gtk_window_present (GTK_WINDOW (s_window)); } int main (int argc, char *argv[]) { // Создаём новое приложение GtkApplication *app = gtk_application_new ("com.example.GtkApplication", G_APPLICATION_FLAGS_NONE); g_signal_connect (приложение, «активировать», G_CALLBACK (on_active), NULL); вернуть g_application_run (G_APPLICATION (приложение), argc, argv); } вот style.css
btn1 { цвет: зеленый; } бтн2 { цвет: сине-фиолетовый; } Почему этот код не применяет CSS к приложению с графическим интерфейсом?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Стили CSS не применяются к кнопке: как убрать синюю подсветку при нажатии?
Anonymous » » в форуме CSS - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-