Estoy tratando de cambiar el color de fondo de un botón a rojo, pero parece que no funciona. Pego el código de ejemplo. Si alguien puede decirme cómo arreglar mi código, por favor ayuda.gtk (mm) 3 botón cambio de color de fondo
#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;
}
ACTUALIZACIÓN: bien aquí es como he resuelto:
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);
y el contenido de filename.css es:
column-header .button {
background-image: -gtk-gradient (linear,
left top,
left bottom,
from (#51cccc),
color-stop (0.5, darker (#51cccc)),
to (#51cccc));
}
no veo nada malo en el código, creo que tiene más probabilidades de hacer contigo tema. Si puede establecer el tema predeterminado, puede ver el cambio en el color del botón. –
No creo que un tema gtk3 pueda bloquear el fondo de un botón para cambiarlo – giuspen
El fondo de los botones se puede cambiar al menos de las últimas versiones. El punto clave para mí para que esto funcione fue especificar GTK_STYLE_PROVIDER_PRIORITY_USER al agregar un proveedor. De lo contrario, la imagen de fondo parece tener prioridad sobre el color de fondo –