TA的每日心情 | 奋斗 2015-10-16 12:17 |
---|
签到天数: 401 天 连续签到: 1 天 [LV.9]以坛为家II
|
录入构件(GtkEntry)是单行录入字段,用它来录入和显示正文信息。录入构件由可编辑构件派生而来,
它是更复杂的正文构件的简化形式。录入构件比按钮构件或标号构件复杂。与按钮构件或标号构件相比,
它具有更多的功能。
可以用gtk_entry_new函数或者gtk_entry_new_with_max_length函数建立录入构件.其中函数
gtk_entry_new_with_max_length能够设置录入到构件中的最长的字符数。
以下代码可以生成如图所示的界面
- <P> #include <gtk/gtk.h></P>
- <P>void button_toggled(GtkWidget *widget,gpointer *data)
- {
- //在终端中打印
- if(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))==TRUE)
- g_printf("button checked!!!\n");
- else
- g_printf("button unchecked!!!\n");
- }</P>
- <P>int main (void)
- {
- GtkWidget *window = NULL;
- GtkWidget *entry = NULL;
- // 初始化 GTK
- gtk_init(NULL, NULL);
- // 建立一個新的 GtkWindow
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);</P>
- <P> entry = gtk_entry_new();
- // 設置標題
- gtk_window_set_title (GTK_WINDOW (window), "Window");
- // 設置默認大小
- gtk_window_set_default_size (GTK_WINDOW (window), 300, 200);
- //将button放置到window容器中
- gtk_container_add(GTK_CONTAINER(window),entry);
- // 處理 "destroy" 信號,當窗口被關閉時退出程序
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
- // 顯示窗口和所有子組件
- gtk_widget_show_all (window);
- // 開始事件循環
- gtk_main ();
- // gtk_main_quit 會導致 gtk_main 退出,於是程序結束
- return 0;
- }</P>
- <P> </P>
复制代码
如图所示,点一下button就可以将entry的内容显示到label里面去了- #include <gtk/gtk.h>
- GtkWidget *entry = NULL;
- GtkWidget *label2 = NULL;
- void button_on_clicked(GtkWidget *widget,gpointer *data)
- {
- const gchar *text;
- text = (gchar *)malloc(sizeof(gchar));
- text = gtk_entry_get_text(GTK_ENTRY(entry));//获取entry的内容
- gtk_label_set_text(GTK_LABEL(label2),text);//设置label的内容
- }
- int main (void)
- {
- GtkWidget *window = NULL;
- GtkWidget *label1 = NULL;
- GtkWidget *button = NULL;
- GtkWidget *fixed = NULL;
- // 初始化 GTK
- gtk_init(NULL, NULL);
- // 建立一個新的 GtkWindow
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- entry = gtk_entry_new();
- fixed = gtk_fixed_new();
- label1 = gtk_label_new ("input:");
- label2 = gtk_label_new (" ");
- //建立一个新的button
- button = gtk_button_new_with_label ("button");
- gtk_fixed_put(GTK_FIXED(fixed),label1,20,20);
- gtk_fixed_put(GTK_FIXED(fixed),entry,80,20);
- gtk_fixed_put(GTK_FIXED(fixed),button,20,60);
- gtk_fixed_put(GTK_FIXED(fixed),label2,20,90);
- // 設置標題
- gtk_window_set_title (GTK_WINDOW (window), "Window");
- // 設置默認大小
- gtk_window_set_default_size (GTK_WINDOW (window), 300, 200);
- //将button放置到window容器中
- gtk_container_add(GTK_CONTAINER(window),fixed);
- // 處理 "destroy" 信號,當窗口被關閉時退出程序
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
- g_signal_connect (button, "pressed", G_CALLBACK (button_on_clicked), NULL);
- // 顯示窗口和所有子組件
- gtk_widget_show_all (window);
- // 開始事件循環
- gtk_main ();
- // gtk_main_quit 會導致 gtk_main 退出,於是程序結束
- return 0;
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?马上加入
x
|