[問題] 用gtk+畫動畫...

看板C_and_CPP作者 (啤酒肚)時間13年前 (2011/06/14 18:04), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/2 (看更多)
我想用gtk+做個撥圖片的程式, 圖片是在memory裡面: ( char *pData), 然後寬 width, 高 height : GtkWidget *window, *image; gtk_init(NULL, NULL); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //image = gtk_image_new_from_file("xxx.bmp"); image = gtk_image_new_from_pixbuf(gdk_pixbuf_new_from_data ( pData, GDK_COLORSPACE_RGB, false, 8, width, height, width*3, NULL, NULL) ); gtk_window_set_title(GTK_WINDOW(window), "Mirror Op Receiver"); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit),NULL); gtk_window_set_default_size(GTK_WINDOW(window), width, height); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_container_add(GTK_CONTAINER(window),image); gtk_widget_show_all(window); gtk_main(); 撥一張是ok的... 但若我更新 pData的內容 那請問要怎樣才能更新顯示出來的圖像呢 查了下是要設個計數器讓他時間到 就自動更新.... 不過怎都查不到這方面文章啊... 有有經驗的人能指點一下嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.158.204 ※ 編輯: DrStein 來自: 59.120.158.204 (06/14 18:05)

06/14 18:20, , 1F
gtk_image_set_from_pixbuf(image, new_pixbuf);
06/14 18:20, 1F
謝謝大大建譯 但我意思是 讓它自動更新, 不是某個回調函數中的更新畫面 時間到gtk自己會去調用這函數 這函數就是在寫入pData的資料內容 並且刷新顯示的圖巷: 意思有點類似: while(1) { UpdateData(pData); UpdateWindow(windows); Sleep(25); }/*while*/ ※ 編輯: DrStein 來自: 59.120.158.204 (06/14 18:57)

06/14 21:42, , 2F
你可能要用timer, 然後在timer的callback function裡做
06/14 21:42, 2F

06/14 21:42, , 3F
你要的換圖片動作!
06/14 21:42, 3F

06/14 21:43, , 4F
另外GTK+有提供動畫功能的function,你可以查一下文件!
06/14 21:43, 4F

06/14 21:44, , 5F
或許根本不用你一張一張去更新...(我沒記錯的話)
06/14 21:44, 5F

06/14 21:52, , 6F
請問能提示下函數名嗎 謝謝 :)
06/14 21:52, 6F

06/14 22:03, , 7F
g_timeout_add () or g_timeout_add_xxx ()
06/14 22:03, 7F

06/14 22:04, , 8F
timer是放在 glib 吧,prefix 是 g_timer
06/14 22:04, 8F

06/14 23:05, , 9F
那直接問 有沒推鍵得gtk書啊 查了真是少啊。。
06/14 23:05, 9F

06/15 08:32, , 10F
讀 gtk 的 API reference & tutorial,雖然tutorial不太
06/15 08:32, 10F

06/15 08:33, , 11F
完整 ... 大部分的東西看 API reference 就能解決
06/15 08:33, 11F

06/17 13:00, , 12F
GTK+沒有"正體"中文書,不過它的文件與範例已經夠你用了!
06/17 13:00, 12F
文章代碼(AID): #1Dzp8xtP (C_and_CPP)
文章代碼(AID): #1Dzp8xtP (C_and_CPP)