ボタンの背景色を赤に変更しようとしていますが、動作しないようです。 サンプルコードを貼り付けます。 誰かが私のコードを修正する方法を教えていただけたら助けてください。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: は、ここで私が解決方法ですOK:
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));
}
を行う必要があり、C++で、私はそれがあなたのテーマをどうする可能性が最も高いと思います。デフォルトのテーマを設定することができれば、ボタンの色の変化を見ることができます。 –
gtk3のテーマがボタンの背景を変更するのをブロックできるとは思わなかった – giuspen
ボタンの背景は、少なくとも最新のリリースで変更できます。この作業をする上での重要なポイントは、プロバイダを追加するときにGTK_STYLE_PROVIDER_PRIORITY_USERを指定することでした。それ以外の場合、背景画像は背景色よりも優先されるようです。 –