[問題] gtk2.0 xml & callback 的關聯(solved)

看板C_and_CPP (C/C++)作者 (  )時間11年前 (2014/10/24 17:49), 11年前編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) gtk2.0 問題(Question): 我打算用gtk畫一個drawarea出來,在它做完了時候,執行一段code 所以想使用realize的event來觸發callback function。 所以,我在xml的內容寫了這段 <object class="drawarea" id="Draw"> <signal name="realize" handler="realize_cb" /> </object> 而main中,宣告: gboolean realize_cb(GtkWidget *widget, GdkEvent *ev gpointer data){ // do something fprintf(stderr, "check"); } 這段callback function。 另外在main program裡,用 GtkWidget *Drawarea = GTK_WIDGET(gtk_builder_get_object(builder, "Draw")); 取得這個Widget的設定, 然後 gtk_widget_realize(Drawarea); 實作它。 compile的階段沒有問題,但是卻沒有進到callback裡; 不過如果是用 gtk_signal_connect(G_OBJECT(Drawarea), G_CALLBACK(realize_cb)); 來連結就可以成功, 請問我還缺了什麼設定才能把這個連接起來? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.21.58 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414144144.A.9E3.html

10/24 19:38, , 1F
linker 上 --export-dynamic 看有沒有用
10/24 19:38, 1F

10/24 19:42, , 2F
另外你有 call gtk_builder_connect_signals 嗎?
10/24 19:42, 2F

10/27 09:36, , 3F
我都試試看,看起來很像這兩個原因~等等還回報。
10/27 09:36, 3F

10/27 11:39, , 4F
試了,有改善,至少有連到,但是它現在在執行的時候找不到
10/27 11:39, 4F

10/27 11:40, , 5F
handler, 還在想辦法解決中..
10/27 11:40, 5F
按照一樓大大的解法弄好了! 重點在幾個: 1. gtk_build_connect_singals() 2. linker 要加上export_dynamic 3. 用 extern "C" G_MODULE_EXPORT 結案。 ※ 編輯: chigi (220.135.21.58), 10/27/2014 14:50:12 ※ 編輯: chigi (220.135.21.58), 10/27/2014 14:55:18

10/27 17:05, , 6F
有 C++ 怎麼還用 gtk XDD
10/27 17:05, 6F

10/30 12:08, , 7F
痾,工作需求..@@
10/30 12:08, 7F
文章代碼(AID): #1KIY2GdZ (C_and_CPP)
文章代碼(AID): #1KIY2GdZ (C_and_CPP)