资源简介
在linux下编写的gtk程序,附件里面有可执行文件和源代码
代码片段和文件信息
#include
void change_background(GtkWidget *widget int w int h const gchar *path)
{
//1.允许窗口可以绘图
gtk_widget_set_app_paintable(widget TRUE);
gtk_widget_realize(widget);
/* 更改背景图时,图片会重叠
* 这时要手动调用下面的函数,让窗口绘图区域失效,产生窗口重绘制事件(即 expose 事件)。
*/
gtk_widget_queue_draw(widget);
GdkPixbuf *src = gdk_pixbuf_new_from_file(path NULL);
GdkPixbuf *dst = gdk_pixbuf_scale_simple(srcwhGDK_INTERP_BILINEAR);
/* 创建pixmap图像;
* NULL:不需要蒙版;
* 123: 0~255,透明到不透明
*/
GdkPixmap *pixmap = NULL;
gdk_pixbuf_render_pixmap_and_mask(dst&pixmapNULL128);
// 通过pixmap给widget设置一张背景图,最后一个参数必须为: FASL
gdk_window_set_back_pixmap(widget->windowpixmapFALSE);
g_object_unref(src);
g_object_unref(dst);
g_object_unref(pixmap);
return;
}
int main(int argc char *argv[])
{
//1.gtk环境的初始化
gtk_init(&argc &argv);
//2.创建一个window
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//3.设置窗口标题
gtk_window_set_title(GTK_WINDOW(window) “设置窗口背景图“);
gtk_widget_set_size_request(window 500450);
//4.设置窗口图片
change_background(window 500 400 “./img/1.jpg“);
//5.显示所有窗口
gtk_widget_show_all(window);
//6.主事件循环
gtk_main();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 203 2015-07-04 10:25 18_gtk_background\Makefile
文件 7830 2015-07-04 10:29 18_gtk_background\gtk_background
文件 1649 2015-07-30 09:43 18_gtk_background\gtk_background.c
文件 99863 2015-06-02 10:05 18_gtk_background\img\1.jpg
目录 0 2015-07-03 10:49 18_gtk_background\img
目录 0 2015-07-04 10:29 18_gtk_background
----------- --------- ---------- ----- ----
109545 6
- 上一篇:Voronoi图增量构造算法
- 下一篇:基于STM32F103的指纹识别程序
相关资源
- spice-protocolspice-gtk从0编译说明文档并
- 无线网络抓包工具minidwep-gtk三版合一
- minidwep-gtk-kali_40420_amd64.deb
- libwebkitgtk1.0.0的rpm安装包
- GTK+ 3.6.1 Reference Manual 参考手册 chm版
- GTK+ 3.6.1 参考手册
- gtk+ 2.24 官方参考文档 chm版 api
- eclipse安装包百度云资源 eclipse-jee-lu
- gtk2.0帮助文档.chm
- gtk做的学生管理系统
- 福州大学Linux 操作系统设计实践报告
- gtk+模拟的计算器
- 嵌入式局域网聊天系统服务端
- gtk图片资源练习
- linux下多用户聊天程序
- 在Linux下用C的GTk+做的五子棋(三子棋
- linux下即时通讯聊天的实现的源代码
评论
共有 条评论