zoukankan      html  css  js  c++  java
  • gtk中构件添加背景图

    在gtk中我们总想要去给构件添加背景图,具体函数代码如下

    void chang_background(GtkWidget *widget, int w, int h, const gcha    r *path)
     12 {                       
     13     gtk_widget_set_app_paintable(widget, TRUE);     //允许窗口可>    以绘图
     14     gtk_widget_realize(widget);
     15                         
     16     /* 更改背景图时,图片会重叠
     17      * 这时要手动调用下面的函数,让窗口绘图区域失效,产生窗口重绘
        制事件(即 expose 事件)。
     18      */                 
     19     gtk_widget_queue_draw(widget);
     20                         
     21     GdkPixbuf *src_pixbuf = gdk_pixbuf_new_from_file(path, NULL);       // 创建图片资源对象
     22     // w, h是指定图片的宽度和高度
     23     GdkPixbuf *dst_pixbuf = gdk_pixbuf_scale_simple(src_pixbuf, w    , h, GDK_INTERP_BILINEAR);
     24                         
     25     GdkPixmap *pixmap = NULL;
     26                         
     27     /* 创建pixmap图像;  
     28      * NULL:不需要蒙版;
     29      * 123: 0~255,透明到不透明
     30      */                 
     31     gdk_pixbuf_render_pixmap_and_mask(dst_pixbuf, &pixmap, NULL,     128);
     32     // 通过pixmap给widget设置一张背景图,最后一个参数必须为: FASL    E
     33     gdk_window_set_back_pixmap(widget->window, pixmap, FALSE);
     34                         
     35     // 释放资源         
     36     g_object_unref(src_pixbuf);
     37     g_object_unref(dst_pixbuf);
     38     g_object_unref(pixmap);
     39 }                       

    在主函数中调用该函数就行,也可以自己写一个头文件

    原文链接: https://blog.csdn.net/tennysonsky/article/details/43154601

    笨鸟先飞
  • 相关阅读:
    Java中new关键字和newInstance方法的区别
    一道关于简单界面设计的练习题
    一道关于接口的练习题
    SPSS与聚类分析
    Nunit中文文档
    对比MS Test与NUnit Test框架
    Unit Test单元测试时如何模拟HttpContext
    如何vs升级后10和12都能同时兼容
    LINQ 从 CSV 文件生成 XML
    使用FileSystemWatcher监视文件变化
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/12550498.html
Copyright © 2011-2022 走看看