可以通过一下代码访问在GtkMenuItem中的 label:
- if (GTK_BIN (menu_item)->child)
- {
- GtkWidget *child = GTK_BIN (menu_item)->child;
- /* do stuff with child */
- if (GTK_IS_LABEL (child))
- {
- gchar *text;
- gtk_label_get (GTK_LABEL (child), &text);
- g_print ("menu item text: %s/n", text);
- }
- }
从GtkOptionMenu控件中得到活动的menu item可以通过:
|
但是,在以上这种特殊情况下,option menu 会临时的作为menu_item的孩子即LAble控件的父亲。这是,你可以:
- if (GTK_BIN (option_menu)->child)
- {
- GtkWidget *child = GTK_BIN (option_menu)->child;
- /* do stuff with child */
- }
当Lable标签文字没有足够空间显示时,可以用gtk_label_set_ellipsize设置Label的文字属性。
- gtk_label_set_ellipsize ()
- void gtk_label_set_ellipsize (GtkLabel *label,
- PangoEllipsizeMode mode);
- Sets the mode used to ellipsize (add an ellipsis: "...") to the text if there is not enough space to render the entire string.
- label : a GtkLabel
- mode : a PangoEllipsizeMode
- Since 2.6