Как применить CSS к элементам приложения GTK с помощью селекторов CSSC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как применить CSS к элементам приложения GTK с помощью селекторов CSS

Сообщение Anonymous »

Я разрабатываю приложение C++ GTK и пытаюсь реализовать темную тему с помощью CSS. Я создал файл style.css с необходимыми стилями, но у меня возникли проблемы с применением этих стилей к определенным элементам GTK, таким как GtkTextView и GtkSidebar.
Стили, определенные в моем 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»