使用gcc使用c语言更改gtk中按钮的颜色

时间:2012-11-09 11:21:04

标签: c gcc gtk mingw gtk2

我正在使用:“gtk + -bundle_2.24.10-20120208_win32” 在MinGW中使用Windows 7上的gcc ...

我很难在按钮中设置颜色..我的代码是

GdkColor color;
gdk_color_parse ("red", &color);
gtk_widget_modify_bg ( GTK_WIDGET(a3), GTK_STATE_NORMAL, &color);
gtk_widget_show_all(window);

但我不能得到红色的按钮...... 该怎么做..

3 个答案:

答案 0 :(得分:2)

这适用于Linux上的GTK 2:

#include <gtk/gtk.h>

int main (int argc,char **argv)
{
    GtkWidget *button;
    GtkWidget *window;

    gtk_init (&argc,&argv);
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    g_signal_connect (G_OBJECT(window), "destroy",
            G_CALLBACK (gtk_main_quit), NULL);

    button = gtk_button_new_with_label ("Hello World !");
    gtk_container_add (GTK_CONTAINER (window), button);

    GdkColor color;
    gdk_color_parse ("red", &color);
    gtk_widget_modify_bg (GTK_WIDGET(button), GTK_STATE_NORMAL, &color);

    gtk_widget_show_all (window);
    gtk_main ();

    return 0;
}

编译并检查它是否适用于您的平台。

答案 1 :(得分:2)

我使用gtk2.24.10中的事件框,它可以工作。

我在网上发现了这个。

“modify_bg()仅影响具有关联gtk.gdk.Window的小部件。

没有关联窗口的窗口小部件包括:

gtk.Arrow,gtk.Bin,gtk.Box,gtk.Button,gtk.CheckButton,gtk.Fixed,gtk.Image,gtk.Label,gtk.MenuItem,gtk.Notebook,gtk.Paned, gtk.RadioButton,gtk.Range,gtk.ScrolledWindow,gtk.Separator,gtk.Table,gtk.Toolbar,gtk.AspectFrame,gtk.Frame,gtk.VBox,gtk.HBox,gtk.VSeparator,gtk.HSeparator。

可以将这些小部件添加到gtk.EventBox中以克服此限制。“

答案 2 :(得分:-1)

安装Gtk

要安装Gtk库,我们可以访问以下链接。向下滚动到页面中间,您将找到All-in-one捆绑包。下载安装运行时库和开发人员版本。

http://www.gtk.org/download/win32.php

运行安装程序并安装到默认位置C:\Program Files (x86)\GTK2-Runtime\,然后继续使用二进制文件和库文件追加Path环境变量: C:\Program Files (x86)\GTK2-Runtime\bin; C:\gtk\bin; C:\gtk\lib; C:\gtk\include;

按钮修复

建议重命名GTK2-Runtime目录中的share目录。默认目录为C:\Program Files (x86)\GTK2-Runtime\。我将share目录重命名为_share,小部件的所有颜色代码现在都很棒!

gtkrc个文件存储所有Gtk小部件的GUI属性。如果未重命名,移动或删除此目录,则ATST GUI的所有样式将显示为运行时或灰色的默认设置。