Ich möchte eine glade-Datei laden und die Farbe aller Toggle-Buttons ändern (Klasse "GtkToggleButton", ich möchte die "gedrückte" Farbe ändern) Der Toggle-Button ist eines von vielen Sub-Sub-Elementen in der Glade-Datei. Hier ist der C-Code-snipped Ich verwende die CSS- und die .glade zu laden:Erhalte keine css in gtk3 mit glade zum arbeiten
void on_minute_pressed(GtkWidget *button)
{
GtkCssProvider *cssProvider = gtk_css_provider_new();
gtk_css_provider_load_from_path(cssProvider,"./test.css",NULL);
GtkBuilder *builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "minute_dialog.glade", NULL);
GtkWidget *window= GTK_WIDGET(gtk_builder_get_object(builder, "MinuteWizard"));
gtk_window_set_transient_for (window,main_window);
gtk_style_context_add_provider(gtk_widget_get_style_context(window),cssProvider,GTK_STYLE_PROVIDER_PRIORITY_USER);
gtk_builder_connect_signals(builder, NULL);
gtk_widget_show(window);
g_object_unref(builder);
}
Und hier die CSS- ich zur Zeit verwenden:
.button {
padding: 30;
background-color: shade (@bg_color, 55);
}
togglebutton entry {
color: 900185;
}
button:active {
background-color: #0274d9;
}
Was derzeit geschieht: Das neue Fenster Laden ist in Ordnung, aber es scheint, dass es egal ist, was ich in die .css schreibe, ändert es nicht das Aussehen der Fensterelemente. Ich kann sehen, dass die .css geladen ist, weil ich Warnungen wie:
bekommen Was ist los? Muss ich die .css-Datei einzeln auf jede untergeordnete Leiste anwenden?
Die 'Nicht-Einheiten verwendet, ist deprecated' stammt aus alten CSS-Dateien, in denen Einige Größen werden nur durch eine Zahl angegeben, z. B. "border = 1". Gegenwärtige gtk-Versionen erfordern, dass sie als "1px" spezifiziert werden. Denken Sie daran, wenn Ihr Thema so alt ist, werden Sie wahrscheinlich Probleme mit gtk neuer als 3.20 haben! Es sollte jedoch Ihr Hauptproblem nicht beeinflussen. – jcoppens