在学习GTK,创建了行编辑来获取用户输入,其中一个模块代码如下:
#include"stdio.h"
#include"stdlib.h"
#include<string.h>
#include<gtk/gtk.h>
#include"pre.h"
#include"Search.h"
#include"ADD.h"
#include"time.h"
#include"save.h"
BOOK *Ins;
void entry_callback1(GtkWidget *widget,gpointer entry)
{
const gchar *gettext;
gettext=gtk_entry_get_text(GTK_ENTRY(entry));
strcpy(Ins->name,gettext);
printf("%s",Ins->name); //这里输出是正常的
return ;
}
void ADDb(GtkWidget *Widget,BOOK *head)
{
GtkWidget* hbox;
GtkWidget* xbox;
GtkWidget* box1;
GtkWidget* box2;
GtkWidget* text1;
GtkWidget* dia;
GtkWidget* label;
const gchar *gett1;
Ins = (BOOK *)malloc(sizeof(BOOK));
dia=gtk_dialog_new();
gtk_window_set_title(GTK_WINDOW(dia),"www");
box1=GTK_DIALOG(dia)->vbox;
label=gtk_label_new("please entry your name:");
gtk_box_pack_start(GTK_BOX(box1),label,TRUE,TRUE,30);
text1=gtk_entry_new();
g_signal_connect(text1,"activate",G_CALLBACK(entry_callback1),text1);
gtk_box_pack_start(GTK_BOX(box1),text1,FALSE,FALSE,0);
if(Ins!=NULL)
{
printf("%s",Ins->name); //这里输出就乱码了
}
gtk_widget_show_all(dia);
return;
}
两次输出 一次是只有下面的输出 一次上下两个一起输出 请高手帮忙看看~多谢了