Model

Model pro ComboBox se dá definovat a vyplnit úplně stejně, jako pro TreeView. Například můžete odvodit třídu ComboBox s jedním celočíselným a jedním textovým sloupce, nějak takto:

class ModelColumns : public Gtk::TreeModel::ColumnRecord
{
public:
  ModelColumns()
  { add(m_col_id); add(m_col_name); }

  Gtk::TreeModelColumn<int> m_col_id;
  Gtk::TreeModelColumn<Glib::ustring> m_col_name;
};

ModelColumns m_columns;

Po přidání řádků do tohoto modelu byste jej měli pomocí metody set_model() předat do objektu ComboBox. Pak použijte metodu pack_start() nebo pack_end() k určení, které sloupce se budou v rozbalovacím seznamu zobrazovat. Stejně jako u TreeView, můžete buď nastavit výchozí vykreslování buněk předáním TreeModelColumn do balicí metody, nebo můžete vytvořit instanci konkrétní třídy CellRenderer a určit konkrétní mapování buď pomocí add_attribute() nebo set_cell_data_func(). Tyto metody pochází ze základní třídy CellLayout.