5
我试图将按钮的背景颜色更改为红色,但似乎不起作用。 我粘贴示例代码。 如果有人能告诉我如何解决我的代码请帮助。gtk(mm)3按钮背景颜色变化
#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: 确定这里就是我如何解决:
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);
和filename.css的内容是:
column-header .button {
background-image: -gtk-gradient (linear,
left top,
left bottom,
from (#51cccc),
color-stop (0.5, darker (#51cccc)),
to (#51cccc));
}
我看不出有什么错误的代码,我认为它最有可能与你的主题做的。如果你可以设置默认主题,你可以看到按钮颜色的变化。 –
我不认为gtk3主题可以阻止要更改的按钮的背景 – giuspen
按钮的背景至少可以更改最新版本。让我工作的关键是在添加提供者时指定GTK_STYLE_PROVIDER_PRIORITY_USER。否则背景图像似乎优先于背景色 –