0
對於我的GUI有一些按鈕。如果我要更改或更新從列表中選擇的隨機按鈕的標籤,我應該怎麼做?更新或更改C中的按鈕標籤
按鈕的初始名稱寫入按鈕屬性中。我的GUI設計在Glade。
現在我將在我的GUI中的輸入文本中輸入新名稱。
我爲此創建了一個更新按鈕。如何在Gtk課程中做到這一點。
的相關代碼如下:在窗口和按鈕的
創造和發現它。
UpdateButton = GTK_WIDGET(gtk_builder_get_object(builder, "UpdateButton"));
gtk_signal_connect (GTK_OBJECT (UpdateButton), "clicked", GTK_SIGNAL_FUNC (Update_Data), NULL);
點擊更新按鈕。
void Update_Data(GtkWidget *widget, gpointer data)
{
const gchar *entry_text1;
const gchar *entry_text2;
const gchar *entry_text3;
g_print ("You have clicked Update... - %s was pressed\n", (char *) data);
entry_text1 = gtk_entry_get_text (GTK_ENTRY (entry1));
entry_text2 = gtk_entry_get_text (GTK_ENTRY (entry2));
entry_text3 = gtk_entry_get_text (GTK_ENTRY (entry3));
char sql[300];
sprintf(sql, "UPDATE DEVICES set NAME='%s ',\nUSERNAME='%s ',\nPASSWORD='%s '\nwhere ID=%s;"
, entry_text1, entry_text2, entry_text3, updateid);
//updateid is the ID taken from the array when a button is clicked
inserDatabase("myDatabase.db", sql);
getlastEntry(); //for taking the last entered info
updateData(sql); //for updating in database
}
如果需要更多信息,我會幫你。請問問!
Ok @ Coffee'd你能告訴我現在如何在輸入文本中輸入新名稱時更改標籤嗎? – djgharphalia07
@ djgharphalia07這取決於。你如何獲取和存儲文本?例如,您可以像這樣獲取文本:'const gchar * button_text = gtk_entry_get_text(text_entry);',其中'text_entry'是'GtkEntry'小部件。然後你可以像下面這樣使用'button_text':'gtk_button_set_label(change_button,button_text);'然而,這要求'button_text'是一個全局變量,或者將'change_button'和'text_entry'小部件都存儲在一個struct中並將其傳遞給點擊信號功能。 –
你非常接近:)而且我非常感謝你如此快速的迴應!其實我將按鈕信息存儲在數據庫中。所以,更新也會在數據庫中發生變化。我已經做了一切,但我無法得到更新後的按鈕在進入按鈕後,而不是再次運行我的代碼來獲得新的標籤:( – djgharphalia07