[gtk+2.0]通过回车信号获取文本框输入的内容

最近在看《Foundations of GTK+ Development》,里面获取文本框内容的例子都是创建一个button然后通过“clicked“获得的,从用户使用角度来说太不方便了,一般习惯都是输入好内容,然后直接按回车键。查阅了下Devhelp,找到实现方法。主要就是activate信号,代码如下。

C语言: Codee#6176
01 #include <gtk/gtk.h>
02 static void destroy (GtkWidget*, gpointer);
03 static void g_pp(GtkWidget *entry);
04 int main (int argc,char *argv[])
05 {
06 GtkWidget *window, *label, *vbox;
07 GtkWidget *entry;
08
09 gtk_init (&argc, &argv);
10 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
11 gtk_window_set_title (GTK_WINDOW (window), Get Entry text );
12 gtk_container_set_border_width (GTK_CONTAINER (window), 10);
13
14 g_signal_connect (G_OBJECT (window), destroy,
15 G_CALLBACK (destroy), NULL);
16 entry=gtk_entry_new();
17 label = gtk_label_new (Input Data);
18
19 g_signal_connect(G_OBJECT(entry), activate,
20 G_CALLBACK(g_pp), (gpointer)entry);
21 vbox = gtk_vbox_new (FALSE, 10);
22
23 gtk_box_pack_start_defaults (GTK_BOX (vbox), label);
24 gtk_box_pack_start_defaults (GTK_BOX (vbox), entry);
25 gtk_container_add (GTK_CONTAINER (window), vbox);
26 gtk_widget_show_all (window);
27
28 gtk_main ();
29 return 0;
30 }
31
32 static void destroy (GtkWidget *window,
33 gpointer data)
34 {
35 gtk_main_quit ();
36 }
37
38 static void
39 g_pp(GtkWidget *entry)
40
41 {
42 gchar *yourtext;
43 yourtext=gtk_entry_get_text(GTK_ENTRY(entry));
44 printf( You typed: \”%s\”\n, yourtext );
45 }

此条目发表在 技术 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>