Chinaunix

标题: gtkcombobox 怎么知道当前显示的是什么内容? [打印本页]

作者: oxangen    时间: 2011-05-07 12:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: oxangen    时间: 2011-05-07 12:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: nketc    时间: 2011-05-07 23:36
combox没用过,看看文档吧。
作者: oxangen    时间: 2011-05-08 18:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: oxangen    时间: 2011-05-08 19:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: nketc    时间: 2011-05-08 21:01
回复 5# oxangen
  1. #include <gtk/gtk.h>

  2. static void combbox_active_changed (GtkWidget *widget, gpointer data);

  3. int main (int argc, char *argv[])
  4. {
  5.   GtkWidget *window;
  6.   GtkWidget *cbb;
  7.   gchar     **text;
  8.   gint       i;
  9. #define ITEMS  3

  10.   gtk_init (&argc, &argv);

  11.   text = g_malloc (ITEMS * sizeof (gchar *));

  12.   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  13.   cbb = gtk_combo_box_new_text ();
  14.   gtk_widget_show (cbb);
  15.   for (i=0; i<ITEMS; i++)
  16.   {
  17.     text[i] = g_strdup_printf ("item %d", i + 1);
  18.     gtk_combo_box_append_text (GTK_COMBO_BOX (cbb), text[i]);
  19.   }
  20.   gtk_container_add (GTK_CONTAINER (window), cbb);

  21.   g_signal_connect (cbb, "changed", G_CALLBACK(combbox_active_changed), text);

  22.   gtk_widget_show (window);

  23.   gtk_main ();

  24.   for (i=0; i<ITEMS; i++)
  25.     g_free (text[i]);
  26.   g_free (text);

  27.   return 0;
  28. }

  29. static void
  30. combbox_active_changed (GtkWidget *widget, gpointer data)
  31. {
  32.   gchar **text = data;
  33.   gint   i = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));

  34.   if (i >= 0)
  35.     g_print ("%s\n", text[i]);
  36. }

复制代码

作者: oxangen    时间: 2011-05-08 21:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: oxangen    时间: 2011-05-08 22:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: nketc    时间: 2011-05-08 22:31
是啊 ,文档里都有。
看一个Widget的文档要看x个部分

1)这个Widget的类层次(继承关系)
     有时候我们需要的功能在这个Widget的API中不一定有,那就到它的parent类型中找找。比如label本身没有提供对齐方式的API,但是它的parent类型GtkMisc有,一样可以用于label
2)看这个Widget的API
     这应该是经常看的部分。可能有人仅看这一部分。这样就不足以全面了解一个控件的功能。
3)看这个Widget提供了那些signal
     大部分Widget的大部分signal都是对本Widget内部状态变化提供通知机制。关系她就connect她
4)看这个Widget的style property
     使用它可以定制Widget的外观。
gtk的每一个Widget都是“自我负责”的,自己负责自己,
作者: oxangen    时间: 2011-05-09 12:19
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2