gtkcombobox 怎么知道当前显示的是什么内容?

发布于 2022-10-15 07:39:47 字数 16 浏览 27 评论 0

combox没用过,看看文档吧。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

摘星┃星的人 2022-10-22 07:39:47

回复 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. }

复制代码

来日方长 2022-10-22 07:39:47

是啊 ,文档里都有。
看一个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都是“自我负责”的,自己负责自己,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文