更新或更改C中的按钮标签
我的GUI有一些按钮。如果我要更改或更新从列表中选择的任意按钮的标签,我应该怎么做 按钮的初始名称写在按钮属性中。我的GUI是在Glade中设计的 现在,我将在GUI的输入文本中输入新名称 我已经为此创建了一个更新按钮。当然,如何在Gtk中执行 相关代码如下: 在窗口中创建按钮并找到它更新或更改C中的按钮标签,c,button,updates,glade,gtk2,C,Button,Updates,Glade,Gtk2,我的GUI有一些按钮。如果我要更改或更新从列表中选择的任意按钮的标签,我应该怎么做 按钮的初始名称写在按钮属性中。我的GUI是在Glade中设计的 现在,我将在GUI的输入文本中输入新名称 我已经为此创建了一个更新按钮。当然,如何在Gtk中执行 相关代码如下: 在窗口中创建按钮并找到它 UpdateButton = GTK_WIDGET( gtk_builder_get_object( builder, "UpdateButton" ) ); gtk_signal_connect (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
}
如果需要更多的信息,我会给你。请一定要问 你的问题不清楚,但如果我理解正确
你有按钮
GtkButton *click_button; // Button to click
GtkButton *change_button; // Button that changes label
click_button = GTK_BUTTON (gtk_builder_get_object (builder, "click_button"));
change_button = GTK_BUTTON (gtk_builder_get_object (builder, "change_button"));
为单击事件定义一个函数以设置标签
static void
change_button_label (GtkWidget *click_button,
gpointer user_data)
{
GtkButton *change_button = (GtkButton *) user_data;
gtk_button_set_label (change_button, "New Label");
}
将点击信号功能连接到按钮,并将更改按钮传递给它
g_signal_connect (click_button, "clicked", G_CALLBACK (change_button_label), change_button);
你的问题不清楚,但如果我理解正确
你有按钮
GtkButton *click_button; // Button to click
GtkButton *change_button; // Button that changes label
click_button = GTK_BUTTON (gtk_builder_get_object (builder, "click_button"));
change_button = GTK_BUTTON (gtk_builder_get_object (builder, "change_button"));
为单击事件定义一个函数以设置标签
static void
change_button_label (GtkWidget *click_button,
gpointer user_data)
{
GtkButton *change_button = (GtkButton *) user_data;
gtk_button_set_label (change_button, "New Label");
}
将点击信号功能连接到按钮,并将更改按钮传递给它
g_signal_connect (click_button, "clicked", G_CALLBACK (change_button_label), change_button);
你的问题不清楚,但如果我理解正确
你有按钮
GtkButton *click_button; // Button to click
GtkButton *change_button; // Button that changes label
click_button = GTK_BUTTON (gtk_builder_get_object (builder, "click_button"));
change_button = GTK_BUTTON (gtk_builder_get_object (builder, "change_button"));
为单击事件定义一个函数以设置标签
static void
change_button_label (GtkWidget *click_button,
gpointer user_data)
{
GtkButton *change_button = (GtkButton *) user_data;
gtk_button_set_label (change_button, "New Label");
}
将点击信号功能连接到按钮,并将更改按钮传递给它
g_signal_connect (click_button, "clicked", G_CALLBACK (change_button_label), change_button);
你的问题不清楚,但如果我理解正确
你有按钮
GtkButton *click_button; // Button to click
GtkButton *change_button; // Button that changes label
click_button = GTK_BUTTON (gtk_builder_get_object (builder, "click_button"));
change_button = GTK_BUTTON (gtk_builder_get_object (builder, "change_button"));
为单击事件定义一个函数以设置标签
static void
change_button_label (GtkWidget *click_button,
gpointer user_data)
{
GtkButton *change_button = (GtkButton *) user_data;
gtk_button_set_label (change_button, "New Label");
}
将点击信号功能连接到按钮,并将更改按钮传递给它
g_signal_connect (click_button, "clicked", G_CALLBACK (change_button_label), change_button);
好的@Coffee'd你现在能告诉我在输入文本中输入新名称时如何更改标签吗?@djgharphalia07这取决于。您如何获取和存储文本?例如,您可以像这样获取文本:
const gchar*button_text=gtk_entry_get_text(text_entry)
,其中text\u条目
是GtkEntry
小部件。然后你只需使用按钮\文本
像这样:gtk \按钮\设置\标签(更改\按钮,按钮\文本)
但是,这需要按钮\文本
是一个全局变量,或者将更改\按钮
和文本输入
小部件存储在一个结构中,并将其传递给click signal函数。您非常接近:)我要感谢您的快速响应!实际上,我正在数据库中存储按钮信息。所以,数据库中的更新也会发生变化。我已完成所有操作,但输入后无法在按钮中获取更新的标签,而不是再次运行代码以获取新标签:(@djgharphalia07您的意思是它正在更新数据库,但不同时更新按钮标签?不必再次阅读数据库?我可能需要查看您的源代码的这一部分以提供帮助。@djgharphalia07 Hmm。这取决于您。如果您认为这是相关的,请编辑您的问题。如果这似乎是它自己的另一个问题,请询问我作为一个新问题,这就是为什么更多的人可以帮助回答这个问题。好的@Coffee'd你现在能告诉我当我在输入文本中输入新名称时如何更改标签吗?@djgharphalia07这取决于它。你是如何获取和存储文本的?例如,你可以这样获取文本:const gchar*button_text=gtk_entry_get_text(text_entry)
,其中text\u entry
是GtkEntry
小部件。然后您只需像这样使用button\u text
:gtk\u button\u set\u标签(更改按钮,按钮\u text)
但是,这需要按钮_文本
是一个全局变量,或者将更改_按钮
和文本_条目
小部件存储在一个结构中,并将其传递给单击信号函数。您非常接近:)我要感谢您这么快的响应!实际上,我正在将按钮信息存储在数据库中。因此,更新也会在数据库中更改。我已经完成了所有操作,但输入后无法在按钮中获取更新的标签,而不是再次运行代码以获取新标签:(@djgharphalia07您的意思是它正在更新数据库,但不同时更新按钮标签?不必再次阅读数据库?我可能需要查看您的源代码的这一部分以提供帮助。@djgharphalia07 Hmm。这取决于您。如果您认为这是相关的,请编辑您的问题。如果这似乎是它自己的另一个问题,请询问我作为一个新问题,这就是为什么更多的人可以帮助回答这个问题。好的@Coffee'd你现在能告诉我当我在输入文本中输入新名称时如何更改标签吗?@djgharphalia07这取决于它。你是如何获取和存储文本的?例如,你可以这样获取文本:const gchar*button_text=gtk_entry_get_text(text_entry)
,其中text\u entry
是GtkEntry
小部件。然后您只需像这样使用button\u text
:gtk\u button\u set\u标签(更改按钮,按钮\u text)
但是,这需要按钮_文本
是一个全局变量,或者将更改_按钮
和文本_条目
小部件存储在一个结构中,并将其传递给单击信号函数。您非常接近:)我要感谢您这么快的响应!实际上,我正在将按钮信息存储在数据库中。因此,更新也会在数据库中更改。我已经完成了所有操作,但输入后无法在按钮中获取更新的标签,而不是再次运行代码以获取新标签:(@djgharphalia07您的意思是它正在更新数据库,但不同时更新按钮标签?不必再次阅读数据库?我可能需要查看您的源代码的这一部分以提供帮助。@djgharphalia07 Hmm。这取决于您。如果您认为这是相关的,请编辑您的问题。如果这似乎是它自己的另一个问题,请询问我作为一个新问题,这就是为什么更多的人可以帮助回答这个问题。好的@Coffee'd你现在能告诉我如何改变l吗