为什么gtk_entry_get_text取不到值

发布于 2022-08-17 02:14:24 字数 2308 浏览 14 评论 3

这是我的代码,很简单

  1. #include<gtk/gtk.h>
  2. #include<string.h>
  3. #include<stdio.h>
  4. gchar a[10];
  5. void print(GtkWidget *widget,gpointer data)
  6. {
  7.     printf("%sn",a);
  8. }
  9. int main(int argc,char *argv[])
  10. {
  11.     GtkWidget *window;
  12.     GtkWidget *table;
  13.     GtkWidget *entry;
  14.     GtkWidget *button;
  15.    
  16.     gtk_init(&argc, &argv);
  17.     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  18.     g_signal_connect (G_OBJECT (window), "destroy",
  19.           G_CALLBACK (gtk_main_quit),
  20.           NULL);
  21.     table=gtk_table_new(2,2,TRUE);
  22.     entry=gtk_entry_new();
  23.     strcpy(a,gtk_entry_get_text(GTK_ENTRY(entry)));  
  24.     button=gtk_button_new_with_label("确认");  
  25.     g_signal_connect (G_OBJECT (button), "clicked",
  26.             G_CALLBACK (print), NULL);
  27.     gtk_table_attach(GTK_TABLE(table),entry,0,1,0,1,
  28.                      (GtkAttachOptions) (GTK_EXPAND),
  29.                      (GtkAttachOptions) (0),0,0);
  30.     gtk_table_attach(GTK_TABLE(table),button,1,2,0,1,
  31.                      (GtkAttachOptions) (GTK_EXPAND),
  32.                      (GtkAttachOptions) (0),0,0);
  33.     gtk_container_add(GTK_CONTAINER(window),table);
  34.     gtk_widget_show_all(window);
  35.     gtk_main();
  36.     return 0;
  37. }

复制代码
就是按确认时,在终端显示出框内输入的内容,但就是没有显示出输入的内容,为什么呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我最亲爱的 2022-08-29 04:04:35

感谢,已解决

水水月牙 2022-08-24 14:05:33

在你strcpy (s, )的时候,entry刚建立起来,还没有任何的内容啊。

人疚 2022-08-22 15:26:56

流程有问题,把gtk_entry_get_text改到回调函数里面

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文