更新或更改C中的按钮标签

更新或更改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_

我的GUI有一些按钮。如果我要更改或更新从列表中选择的任意按钮的标签,我应该怎么做

按钮的初始名称写在按钮属性中。我的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
    }
如果需要更多的信息,我会给你。请一定要问

你的问题不清楚,但如果我理解正确

你有按钮

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吗