El modelo

El modelo de una «ComboBox» puede definirse y llenarse exactamente como un TreeView. Por ejemplo, puede derivar una clase «ComboBox» con una columna de números enteros y otra de texto, así:

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;

Después de añadirle las filas a este modelo, deberá proporcionárselo al ComboBox con el método set_model(). Luego, use los métodos pack_start() o pack_end() para especificar qué columnas se mostrarán en el «ComboBox». Al igual que con el «TreeView», podrá usar el «CellRenderer» predeterminado pasándole la TreeModelColumn a los métodos de empaquetado, o puede instanciar un CellRenderer específico y definir un mapeado particular con add_attribute() o set_cell_data_func(). Tenga en cuenta que estos métodos están en la clase base CellLayout.