Стили, определенные в моем CSS файл не применяется к элементам GTK должным образом. Я использую идентификаторы и селекторы классов для выбора элементов, но элементы выглядят неизменными (единственное, на что влияет — это фон).
Основной файл:
Код: Выделить всё
void load_css(void) {
GtkCssProvider *provider;
GdkDisplay *display;
GdkScreen *screen;
provider = gtk_css_provider_new();
display = gdk_display_get_default();
screen = gdk_display_get_default_screen(display);
gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
const gchar *css_file = "src/style.css";
GError *error = 0;
gtk_css_provider_load_from_file(provider, g_file_new_for_path(css_file), &error);
if (error) {
g_warning("%s", error->message);
g_clear_error(&error);
}
g_object_unref(provider);
}
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "yarncode");
gtk_window_set_default_size(GTK_WINDOW(window), 600, 800);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add(GTK_CONTAINER(window), box);
GtkWidget *header = gtk_header_bar_new();
gtk_box_pack_start(GTK_BOX(box), header, FALSE, FALSE, 0);
GtkWidget *button = gtk_button_new_with_label("
Подробнее здесь: [url]https://stackoverflow.com/questions/78733470/how-to-apply-css-to-gtk-application-elements-using-css-selectors[/url]