【发布时间】:2021-09-19 16:42:15
【问题描述】:
每当一个小部件改变它的状态时,它就应该改变它的样式。我已经成功实现了信号,但我不知道如何真正改变组合框的样式。
改变小部件样式的函数:
{
static Glib::RefPtr<Gtk::CssProvider> css{nullptr};
if(!css) {
css = Gtk::CssProvider::create();
css->load_from_data(
"button {background-color: #fff9ed;}\
button:hover {background-color: #fff9ed;}\
button:active {background-color: #fff9ed;}\
//changing background-color: to color: does not make any difference
combobox {color: @fg_color;background-color: #fff9ed;}\
.entry {color: #fff9ed;}\
checkbutton {background-color: #fff9ed;}\
checkbutton:checked {background-color: #fff9ed;}");
}
return css;
}
这会导致在组合框上创建一个非常小的框架。这是输出:
可以清楚地看到,背景发生了变化(请参见角落上的箭头橙色提示)。但这没有用,因为实际的盒子覆盖了 99% 的背景。我还没有弄清楚如何更改 atual 组合框按钮的样式,这也可以解决我的问题。
【问题讨论】:
-
这里是我的 css 样式更改功能的基础:developer.gnome.org/gtk3/stable/chap-css-overview.html
标签: c++ css user-interface combobox gtkmm