【问题标题】:ComboBox with images GTK带有图像的组合框 GTK
【发布时间】:2011-04-23 02:15:55
【问题描述】:

如何将图像添加到 ComboBox?我想要文本和正确的图像?

我已经尝试实现它,但它没有工作^.^

需要任何建议

【问题讨论】:

标签: image combobox gtk


【解决方案1】:

首先,您需要一个模型来存储项目(文本和图像)。

enum {COL_TEXT, COL_ICON, NUM_COLS};

GtkListStore *store = gtk_list_store_new( 2, G_TYPE_STRING, GDK_TYPE_PIXBUF );

/* add some data */
GtkTreeIter iter;
gtk_list_store_append(store, &iter);
gtk_list_store_set( store, &iter, COL_TEXT, some_text, COL_ICON, some_pixbuf, -1 );

接下来创建GtkComboBox(或GtkComboBoxEntry,您可以跳过创建文本单元格渲染器)。

// GtkComboBoxEntry *combo = gtk_combo_box_entry_new_with_model( GTK_TREE_MODEL(store), COL_TEXT );
GtkComboBox *combo = gtk_combo_box_new_with_model( GTK_TREE_MODEL(store) );

GtkCellRenderer *renderer;

/* text cell */
renderer = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(combo), renderer, TRUE );
gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT(combo), renderer, "text", COL_TEXT, NULL );

/* icon cell */
renderer = gtk_cell_renderer_pixbuf_new();
gtk_cell_layout_pack_start( GTK_CELL_LAYOUT(combo), renderer, FALSE );
gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT(combo), renderer, "pixbuf", COL_ICON, NULL );

【讨论】:

    猜你喜欢
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2016-10-28
    相关资源
    最近更新 更多