【问题标题】:Changing the Color of button in gtk with c language using gcc使用 gcc 使用 c 语言更改 gtk 中按钮的颜色
【发布时间】:2012-11-09 11:21:03
【问题描述】:

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

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

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

但我无法获得红色按钮... 怎么办..

【问题讨论】:

  • 您是否在“显示全部”之前添加您的wiget?例如。 gtk_container_add(GTK_CONTAINER(window), button); 这个例子对你有用吗:stackoverflow.com/questions/99488/… ?
  • 我试过了,但也没用

标签: c gcc gtk mingw gtk2


【解决方案1】:

这适用于 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;
}

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

【讨论】:

  • ..我试过了,但按钮的颜色仍然没有设置..我认为它在 windows 中不起作用
  • 检查它没有在gtkrc文件中被覆盖,如果rc文件正在设置按钮小部件的bg_color,它将覆盖在代码中手动设置。
【解决方案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。 em>

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

【讨论】:

    【解决方案3】:

    安装 Gtk

    要安装 Gtk 库,我们可以访问以下链接。向下滚动到页面中间,您将找到多合一捆绑包。下载会安装运行时库和开发者版本。

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

    运行安装程序并安装到默认位置C:\Program Files (x86)\GTK2-Runtime\,然后继续将路径环境变量附加到二进制文件和库文件中: 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 的所有样式将显示为运行时设置的默认样式或灰色。

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多