Почему цвет моей кнопки GTK CSS работает только тогда, когда мое приложение не выбрано? - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь изменить цвета кнопок, используя CSS, проблема в том, что он работает, только когда я выбираю другое приложение. Когда я выбираю свое приложение, все изменения CSS исчезают. Я не могу найти решение, любая помощь будет оценена. Я приложил свой упрощенный код и результаты. Спасибо

`

#include <gtk/gtk.h>
#include <string.h>

int main (int argc, char *argv[])
{

gtk_init(&argc,&argv);
GtkWidget* window;
GtkWidget *button_quit;
GtkWidget *grid;


window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

grid = gtk_grid_new ();
gtk_container_add (GTK_CONTAINER (window), grid);

// styling background color to black

   static const char *css =
   "#button_quit{"
   "background-color: darkgoldenrod;"
   "color: black;"
   "font-family: darkseagreen;"
   "font-style: normal;"
   "font-weight: bold;"
   "font-size: 30px;"
   "border-radius: 5px;"
   "}";


GtkCssProvider* provider = gtk_css_provider_new();
GdkDisplay* display = gdk_display_get_default();
GdkScreen* screen = gdk_display_get_default_screen(display);
gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider),css,-1, NULL);
gtk_style_context_add_provider_for_screen(screen,
                                                          GTK_STYLE_PROVIDER(provider),
                                                          GTK_STYLE_PROVIDER_PRIORITY_USER);
g_object_unref(provider);


//create quit button
button_quit = gtk_button_new_with_label("Quit");
gtk_widget_set_name(button_quit, "button_quit");
g_object_set (button_quit, "margin", 10, NULL);
g_signal_connect(G_OBJECT(button_quit), "clicked",
     G_CALLBACK(gtk_main_quit), G_OBJECT(window));


gtk_grid_attach (GTK_GRID (grid), button_quit, 0, 0, 1, 1);

gtk_widget_show_all(window);
gtk_main();

return 0;
}

`

Картинки:

Мое приложение не выбрано

Мое приложение выбрано

1 Ответ

0 голосов
/ 10 мая 2020

Мой стиль css загружался как фон ?. Я вставил новый общий стиль кнопок перед своими новыми определениями, и это решило проблемы. Не уверен, почему это решило это, но это произошло.

button {
    background-image: none;
    background-color: @bg_color;
}
...