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。否則背景圖像似乎優先於背景色 –