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
#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]);
}
复制代码
作者:
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