資源簡介
在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的指紋識別程序
評論
共有 條評論