如何在GTK中删除按钮背景阴影? (C)

时间:2016-05-02 19:25:08

标签: c gtk

我是gtk世界的新手,我无法找到解决这个小问题的方法。

我有这个按钮:button2

但我希望可以删除按钮后面的小阴影。 我喜欢这个结果:button2

我该如何解决?

按钮的代码:

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);

2 个答案:

答案 0 :(得分:3)

尝试

gtk_button_set_relief(GTK_BUTTON(sum_button), GTK_RELIEF_NONE);

但是你无法设置背景颜色:

当按钮的边框浮雕设置为无时,它的作用就像一个标签,因为它是“透明的”,它与其父容器具有相同的bg颜色。

看一下这个主题:https://stackoverflow.com/a/1709648/1606345

答案 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);