我正在使用:“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);
但我不能得到红色的按钮...... 该怎么做..
答案 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库,我们可以访问以下链接。向下滚动到页面中间,您将找到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的所有样式将显示为运行时或灰色的默认设置。