我是gtk世界的新手,我无法找到解决这个小问题的方法。
我该如何解决?
按钮的代码:
sum_button = gtk_button_new_from_stock(GTK_STOCK_ADD);
/**/
style = gtk_widget_get_style(sum_button);
style->bg[GTK_STATE_PRELIGHT] = style->bg[GTK_STATE_NORMAL];
gtk_widget_set_style(sum_button, style);
/**/
gtk_widget_modify_bg(sum_button, GTK_STATE_NORMAL, &color2);
gtk_button_set_relief(GTK_BUTTON(sum_button), GTK_RELIEF_HALF);
g_signal_connect(G_OBJECT(sum_button), "clicked", G_CALLBACK(PrintNumber),&t_data);
gtk_box_pack_start(GTK_BOX (hbox3), sum_button, TRUE, TRUE, 0);
答案 0 :(得分:3)
尝试
gtk_button_set_relief(GTK_BUTTON(sum_button), GTK_RELIEF_NONE);
但是你无法设置背景颜色:
当按钮的边框浮雕设置为无时,它的作用就像一个标签,因为它是“透明的”,它与其父容器具有相同的bg颜色。
答案 1 :(得分:0)
如果您正在编写新代码,请考虑使用GTK 3,您可以直接使用CSS执行此操作:
GtkCssProvider *provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(provider,
"button {"
" border: 0px;"
" background-color: green;"
" color: white;"
"}", -1, &error);
GtkStyleContext *context = gtk_widget_get_style_context(button);
gtk_style_context_add_provider(context, provider,
GTK_STYLE_PROVIDER_PRIORITY_USER);