- 论坛徽章:
- 5
|
回复 5# oxangen - #include <gtk/gtk.h>
- static void combbox_active_changed (GtkWidget *widget, gpointer data);
- int main (int argc, char *argv[])
- {
- GtkWidget *window;
- GtkWidget *cbb;
- gchar **text;
- gint i;
- #define ITEMS 3
- gtk_init (&argc, &argv);
- text = g_malloc (ITEMS * sizeof (gchar *));
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- cbb = gtk_combo_box_new_text ();
- gtk_widget_show (cbb);
- for (i=0; i<ITEMS; i++)
- {
- text[i] = g_strdup_printf ("item %d", i + 1);
- gtk_combo_box_append_text (GTK_COMBO_BOX (cbb), text[i]);
- }
- gtk_container_add (GTK_CONTAINER (window), cbb);
- g_signal_connect (cbb, "changed", G_CALLBACK(combbox_active_changed), text);
- gtk_widget_show (window);
- gtk_main ();
- for (i=0; i<ITEMS; i++)
- g_free (text[i]);
- g_free (text);
- return 0;
- }
- static void
- combbox_active_changed (GtkWidget *widget, gpointer data)
- {
- gchar **text = data;
- gint i = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
- if (i >= 0)
- g_print ("%s\n", text[i]);
- }
复制代码 |
|