g_signal_connect()
需要gpointer
,字符常數,GCallback
和另一gpointer
作爲參數。使用GTK對g_signal_connect()進行「正確」轉換?
我通過GTK +書的基礎,現在閱讀,它只是發生,我認爲筆者傾向於投的第一個參數爲G_OBJECT
,最後作爲(gpointer)
,儘管兩者都定義爲gpointer
的在函數簽名中,兩個參數都是GtkWidget
s。
那麼,哪個(如果有的話)是最適合此功能的演員?使用兩個不同的演員似乎很奇怪。
請注意,'g_signal_connect_object'文檔說'GObject中存在一個錯誤,使得這個函數的用處遠不如別的。一旦gobject被處置,回調將不再被調用,但是,信號處理程序當前沒有被斷開。如果實例本身在同一時間被釋放,這並不重要,因爲信號將被自動刪除,但如果實例持續存在,則信號處理程序將會泄漏。您不應該自己移除信號,因爲在將來的GObject版本中,處理程序會自動斷開連接。# – liberforce
快速谷歌:https://www.google.co.uk/?gws_rd=cr&ei=jcb6UrjLJIWq0QX65oGQDQ#q=G_OBJECT + g_signal_connect表明在不需要的情況下投射到G_OBJECT當然是'野外'中的常見習慣用法 – iain