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