我正在glade/gtk+-3/c
中进行设计,我想为gtkheaderbar
重新着色并为其设置样式。但是我似乎无法通过编码做到这一点。网上很少有关于通过主题更改其颜色的信息,但这当然会影响其他应用程序。我只是打算在我正在设计的应用程序中做。
PS。昨天刚学到glade/gtk+-3/c
,请多多包涵。
对于任何要更改背景颜色的小部件
我只是这样做:
color.red = 0xffff;
color.green = 0xffff;
color.blue = 0xffff;
gtk_widget_modify_bg(mywidget, GTK_STATE_NORMAL, &color);
这是名为widget
的{{1}}的完整代码。 Glade文件的名称为window
,然后在其中分配了window_main.glade
的{{1}},我想用id
更改颜色。
widget
上面的代码很好用。现在,由于window_main
也是#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
GdkColor color;
color.red = 0xffff;
color.green = 0xffff;
color.blue = 0xffff;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "window_main.glade", NULL);
window = GTK_WIDGET(gtk_builder_get_object(builder, "window_main"));
gtk_widget_modify_bg(window, GTK_STATE_NORMAL, &color);
gtk_builder_connect_signals(builder, NULL);
g_object_unref(builder);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
,并且具有可分配的GtkHeaderBar
。我尝试了相同的方法,这里的widget
是id
中idmyhead
小部件的id
。
GtkHeaderBar
但是这个不起作用。 glade
中没有任何变化。对于为特定应用程序更改int main(int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *myhead;
GdkColor color;
color.red = 0xffff;
color.green = 0xffff;
color.blue = 0xffff;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "window_main.glade", NULL);
myhead = GTK_WIDGET(gtk_builder_get_object(builder, "idmyhead"));
gtk_widget_modify_bg(myhead, GTK_STATE_NORMAL, &color);
gtk_builder_connect_signals(builder, NULL);
g_object_unref(builder);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
的背景颜色和样式的任何帮助,将不胜感激。