C Gtk_条目为空
我使用GSlist将2个GTK_条目传递给回调函数,但在回调函数中,当我尝试从2个GTK_条目检索数据时,会显示一条错误消息,我在哪里出错?有没有其他方法可以检索用户在GTK_条目中发送给回调函数的数据?非常感谢你的帮助 在主要功能中:C Gtk_条目为空,c,gtk,C,Gtk,我使用GSlist将2个GTK_条目传递给回调函数,但在回调函数中,当我尝试从2个GTK_条目检索数据时,会显示一条错误消息,我在哪里出错?有没有其他方法可以检索用户在GTK_条目中发送给回调函数的数据?非常感谢你的帮助 在主要功能中: GtkWidget *pEntryID; GtkWidget *pEntryMDP; GSList *lLogMdp = NULL; pEntryID = gtk_entry_new(); gtk_container_add(GTK_CONTAINER(pB
GtkWidget *pEntryID;
GtkWidget *pEntryMDP;
GSList *lLogMdp = NULL;
pEntryID = gtk_entry_new();
gtk_container_add(GTK_CONTAINER(pBoiteTotal), pEntryID);
lLogMdp = g_slist_append(lLogMdp,(GtkWidget*) pEntryID);
pEntryMDP = gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(pEntryMDP), FALSE);
gtk_container_add(GTK_CONTAINER(pBoiteTotal), pEntryMDP);
lLogMdp = g_slist_append(lLogMdp,(GtkWidget*) pEntryMDP);
g_signal_connect(G_OBJECT(pLogBtn), "clicked", G_CALLBACK(Login), lLogMdp);
void Login(GtkWidget *pLogBtn, GSList *lLogMdp)
GtkWidget *pEntryID;
GtkWidget *pEntryMDP;
const gchar *sIDEntry;
const gchar *sMDPEntry;
pEntryID = (GtkWidget*) g_slist_nth(lLogMdp, 1);
pEntryMDP = (GtkWidget*) g_slist_nth(lLogMdp, 2);
在回调函数中:
GtkWidget *pEntryID;
GtkWidget *pEntryMDP;
GSList *lLogMdp = NULL;
pEntryID = gtk_entry_new();
gtk_container_add(GTK_CONTAINER(pBoiteTotal), pEntryID);
lLogMdp = g_slist_append(lLogMdp,(GtkWidget*) pEntryID);
pEntryMDP = gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(pEntryMDP), FALSE);
gtk_container_add(GTK_CONTAINER(pBoiteTotal), pEntryMDP);
lLogMdp = g_slist_append(lLogMdp,(GtkWidget*) pEntryMDP);
g_signal_connect(G_OBJECT(pLogBtn), "clicked", G_CALLBACK(Login), lLogMdp);
void Login(GtkWidget *pLogBtn, GSList *lLogMdp)
GtkWidget *pEntryID;
GtkWidget *pEntryMDP;
const gchar *sIDEntry;
const gchar *sMDPEntry;
pEntryID = (GtkWidget*) g_slist_nth(lLogMdp, 1);
pEntryMDP = (GtkWidget*) g_slist_nth(lLogMdp, 2);
g\u slist\n()从0开始计数,因此在g\u slist\n中(lLogMdp,2)
你给它一个超出边界的索引,所以请注意,g\u slist\u nth()
返回的是GSList
,而不是内容本身,所以你应该使用g\u slist\u nth\u data()
我认为这就足够了。要传递闭包,你应该使用user\u data参数,因为这就是它的用途。使用g_object_set_data()只是一种解决方法(另外:请不要将其用作发布视频的快速方式)Nielsdg我一直认为GSlist的第一个元素是我首先创建的指针(对于我来说,lLogMdp)g slist_nth()
从0开始计数,因此在g_slist_nth(lLogMdp,2)
你给它一个超出边界的索引,所以请注意,g\u slist\u nth()
返回的是GSList
,而不是内容本身,所以你应该使用g\u slist\u nth\u data()
我认为这就足够了。要传递闭包,你应该使用user\u data参数,因为这就是它的用途。使用g_object_set_data()只是一种解决方法(另外:请不要将其用作发布视频的快捷方式)Nielsdg我一直认为GSlist的第一个元素是我首先创建的指针(对于我来说,lLogMdp)