#include /** * gtk示例代码:gtk_combo_box_entry 带下拉的输入框 * Author: emptyhua@gmail.com * BSD license * compile: gcc -Wall `pkg-config --libs --cflags gtk+-2.0 ` combo_box_entry.c -o combo_box_entry */ static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } static void button_click_cb( GtkWidget *widget, gpointer data ) { GtkWidget *comb = (GtkWidget *) data; gchar *v = gtk_combo_box_get_active_text(comb); g_printf("get value:%s\n", v); g_free(v); } int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *vbox; GtkWidget *widget; GtkWidget *button; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (destroy), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); widget = gtk_combo_box_entry_new_text (); gtk_combo_box_append_text(widget , "option 1"), gtk_combo_box_append_text(widget , "option 2"), gtk_combo_box_append_text(widget , "option 3"), gtk_box_pack_start(GTK_BOX(vbox), widget, TRUE, TRUE, 0); button = gtk_button_new_with_label("OK"); g_signal_connect (button, "clicked", G_CALLBACK (button_click_cb), widget); gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0); gtk_widget_show_all(window); gtk_main (); return 0; }