Archive for August 21st, 2009


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

August 21st, 2009 — 9:51pm

最近在看《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 }

Comment » | 技术

Back to top