IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]GTK3.0 使用CSS设置控件背景色

    jsh13417发表于 2015-01-05 17:38:03
    love 0

    ********************************************************************************************************************

    我已参加2014“博客之星的”评选,觉得我的文章对您有帮助的,请投上您宝贵的一票

    ***********************************************************************************************************************

    GTK 2.0 在windows运行下,会出现文本框无法输入的问题。这个查找了很多资料,说是2.0版本的问题,目前还未找到好的解决方法。但是使用GTK3.0没有影响。而GTK3.0在设置控件背景图片没有找到合适的方法。参考网上给的例子使用CSS来实现(详细参见参考资料内容)。但是在window下运行并未生效。具体原因不明:

    /*  Compile with:   gcc -Wall -o backimage `pkg-config --cflags --libs gtk+-3.0` backimage.c */
    
    #include gtk.h>
    
    int main(int argc, char *argv[])
    {
      GtkWidget *window;
    
    *----- CSS ----------- */
      GtkCssProvider *provider;
      GdkDisplay *display;
      GdkScreen *screen;
    /*-----------------------*/
    
      gtk_init (&argc;, &argv;);
    
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    /*
        gtk_window_set_default_size (GTK_WINDOW(window),
                                     500, 300);
    */
    
      g_signal_connect (GTK_WIDGET(window),
                        "destroy",
                        G_CALLBACK (gtk_main_quit),
                        NULL);
    
    /*------------- CSS  --------------------------------------------------------------------------------------------------*/
      provider = gtk_css_provider_new ();
      display = gdk_display_get_default ();
      screen = gdk_display_get_default_screen (display);
    
      gtk_style_context_add_provider_for_screen (screen,
                                                 GTK_STYLE_PROVIDER(provider),
                                                 GTK_STYLE_PROVIDER_PRIORITY_USER);
    
      gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider),
                                         " GtkWindow {\n"                         
                                         "   background-image: url('abstract-blue-02.jpg');\n"   
                                         "}\n", -1, NULL);
      g_object_unref (provider);
    /*----------------------------------------------------------------------------------------------------------------------*/
    
      gtk_widget_show_all (window);
      gtk_main ();
    return(0);
    }

    GTK3.0 Ubuntu系统下安装命令如下:
    apt-get install gtk3.0

    参考资料:
    http://www.gtkforums.com/viewtopic.php?f=3&t;=988&sid;=b63d18d182917efd7e2b04eb8c5e50c1&start;=15
    windows 应用程序添加ICON
    https://mail.gnome.org/archives/gtk-app-devel-list/2005-November/msg00169.html


沪ICP备19023445号-2号
友情链接