如何强制更改GtkHeaderBar背景颜色和底部边框

时间:2019-01-18 17:23:39

标签: c gtk3 glade

我正在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。我尝试了相同的方法,这里的widgetididmyhead小部件的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; } 的背景颜色和样式的任何帮助,将不胜感激。

0 个答案:

没有答案