Sto cercando di cambiare il colore di sfondo di un pulsante in rosso, ma non sembra funzionare. Incollo il codice di esempio. Se qualcuno può dirmi come risolvere il mio codice, per favore aiutatemi.gtk (mm) Cambiamento di colore di sfondo a 3 pulsanti
#include <gtkmm.h>
// g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window window;
Gtk::Button button("TEST");
button.override_background_color(Gdk::RGBA("red"));
window.add(button);
window.show_all();
Gtk::Main::run(window);
return EXIT_SUCCESS;
}
UPDATE: ok ecco come ho risolto:
mr_screen = Gdk::Screen::get_default();
mr_style_context = mp_window->get_style_context();
mr_css_provider = Gtk::CssProvider::create();
mr_css_provider->load_from_path(Glib::build_filename(m_glade_dir_path, "filename.css"));
mr_style_context->add_provider_for_screen(mr_screen, mr_css_provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
e il contenuto di filename.css è:
column-header .button {
background-image: -gtk-gradient (linear,
left top,
left bottom,
from (#51cccc),
color-stop (0.5, darker (#51cccc)),
to (#51cccc));
}
non vedo nulla di male nel codice, penso che abbia più probabilità di fare con voi il tema. Se è possibile impostare il tema predefinito, è possibile vedere la modifica nel colore del pulsante. –
Non pensavo che un tema gtk3 possa bloccare lo sfondo di un pulsante da modificare – giuspen
Lo sfondo dei pulsanti può essere modificato almeno delle ultime versioni. Il punto chiave per me nel far funzionare questo è stato specificando GTK_STYLE_PROVIDER_PRIORITY_USER quando si aggiunge un provider. In caso contrario, l'immagine di sfondo sembra avere la priorità sul colore di sfondo –