Я использую gtkmm3 в Ubuntu для написания GUI приложений.
Окно моего приложения состоит из TreeView со связанной моделью ListStore. Один столбец TreeView содержит комбинированные списки с использованием CellRendererCombo. Я связал следующий обратный вызов с сигналом CellRenderCombo.edited ().
void MainWindow::on_combo_choice_changed(const Glib::ustring& path, const Gtk::TreeModel::iterator &iter)
{
//The selected comboBox-entry
Gtk::TreeModel::Row row = *iter;
//The selected string from the comoBoxes' valueSet
Glib::ustring selectedVal = row[m_comboBoxSet_record.m_col_vals];
//Convert path to iterator from Glib::RefPtr(Gtk::ListStore)
Gtk::TreeModel::iterator iterMdl = m_refTreeModel->get_iter(path);
//Row in model from iterator
Gtk::TreeModel::Row rowMdl = *iterMdl;
//updating entry in model (emitting warnings)
rowMdl[m_columns.m_col_eval] = selectedVal;
}
Модель обновлена корректно, но я получаю следующие предупреждения при исключении обратного вызова:
GLib-GObject-CRITICAL **: 07:31:10.671: g_object_notify: assertion 'G_IS_OBJECT (object)' failed
GLib-GObject-CRITICAL **: 07:31:10.671: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Что я делаю не так?