2010-04-27 23 views
0

非常簡單的問題,我有一個GtkEntry小部件,我想設置爲可編輯。我知道我應該使用的功能是:如何在GtkEntry中設置文本編輯

gtk_editable_set_editable 

但我不知道如何使它採取GtkEntry控件作爲參數

下面是我使用的代碼:

GtkWidget *TextEntry; 
TextEntry = gtk_entry_new(); 

gtk_entry_set_visibility(GTK_ENTRY(TextEntry), TRUE); 
gtk_entry_set_editable(GTK_ENTRY(TextEntry), TRUE); 
gtk_entry_set_overwrite_mode(GTK_ENTRY(TextEntry), TRUE); 
gtk_widget_set_can_focus(GTK_WIDGET(TextEntry), TRUE); 
gtk_widget_grab_focus(TextEntry); 

panel_applet_request_focus(applet, 10); 
gtk_container_add (GTK_CONTAINER (applet), TextEntry); 

gtk_widget_show_all (GTK_WIDGET (applet)); 

至於獲取鍵盤焦點,我認爲我需要panel_applet_request_focus()函數。它要求我通過它有問題的小程序和觸發窗口焦點的事件的時間戳

我不知道該輸入什麼時間戳。我編譯了上面的代碼,點擊applet時仍然無法獲得鍵盤焦點。

回答

3

執行以下操作:

GtkWidget* entry = gtk_entry_new(); 
gtk_entry_set_editable(GTK_ENTRY(entry), TRUE); 

歡迎GObject的:)

請注意,如果你使用gtk_editable,你需要做的世界:

gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); 
+0

@SB:嘗試導致出現以下錯誤: 錯誤:無法將參數'1'的'GtkEntry *'轉換爲'GtkEditable *'爲'void gtk_editable_set_editable(GtkEditable *,gboolean)' – paultop6 2010-04-27 12:17:04

+0

這很奇怪。文檔指出GtkEntry實現了GtkEditable。您是否嘗試了已棄用的gtk_entry_set_editable來查看會發生什麼? – 2010-04-27 12:23:28

+0

這是愚蠢的,但你的意思是折舊? – paultop6 2010-04-27 12:24:23

相關問題