2016-02-26 102 views
0

我正在嘗試將一個按鈕設置爲程序中的默認值,以便只要在輸入框內輸入數據,用戶只需按Enter鍵繼續而不是拖動鼠標或標籤笨拙。不在Gtk窗口中的小部件

我對這個代碼是:

gtk_entry_set_activates_default(__w_passwdEntry, true); 
gtk_entry_set_activates_default(__w_uNameEntry, true); 
gtk_widget_set_can_default(GTK_WIDGET(__w_loginBtn), true); 
gtk_widget_grab_default(GTK_WIDGET(__w_loginBtn)); 

,我得到最後一行的錯誤,錯誤寫着:

(app_name:2345): Gtk-WARNING **: gtkwidget.c:6796: widget not within a GtkWindow 

我該如何去有關按鈕與一個窗口關聯?那麼,我將如何確定我需要將按鈕與按鈕關聯的窗口是什麼?

我在Glade中創建了GUI的基礎知識,我正在做除代碼中的佈局之外的所有工作。

回答

0

實測值鏈接到「激活」的回答,使用的g_signal_connect:

g_signal_connect(__w_uNameEntry, "activate", G_CALLBACK(*credentialsCheck), NULL); 
g_signal_connect(__w_passwdEntry, "activate", G_CALLBACK(*credentialsCheck), NULL); 

凡credentialsCheck()是鏈接到登錄按鈕的回調函數。所以這不是一個完美的解決方案,但它現在可行。