GTK 要怎樣在固定時間重繪圖片? - Linux

Table of Contents

更正確來說

我想要做到的是

在需要的時候,將畫面重新繪製

我的畫面中是要貼圖片的

在需要的時候,要移動圖片的位置

查了一下網路上的資料

卻還是找不到解決方法

想問大大有方法嗎?

---

這是目前要修改的code:

#include <gtk/gtk.h>

gboolean expose_event_callback(GtkWidget *widget,
GdkEventExpose *event,
gpointer data) {

GdkGC *gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)];
GdkDrawable *drawable = widget->window;

gdk_draw_pixbuf(drawable, gc, gdk_pixbuf_new_from_file("caterpillar.jpg",
NULL)
, 0, 0, 150, 10, -1, -1,
GDK_RGB_DITHER_NORMAL, 0, 0);

return TRUE;
}

int main(int argc, char *argv[]) {
GtkWidget *window;
GtkWidget *drawing_area;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_POPUP);

drawing_area = gtk_drawing_area_new();
gtk_widget_set_size_request(drawing_area, 350, 200);

g_signal_connect(GTK_OBJECT(drawing_area), "expose_event",
G_CALLBACK(expose_event_callback), NULL);

gtk_container_add(GTK_CONTAINER(window), drawing_area);

g_signal_connect(GTK_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;
}

--

All Comments

Andy avatarAndy2010-04-19
我想你會需要 gdk_window_invalidate_rect
Elvira avatarElvira2010-04-20
它會送signal 強制目標視窗重繪