Gtkmm TreeView:访问动态添加的列

时间:2013-03-19 00:02:52

标签: c++ treeview gtkmm

我目前正在这样做,将numCols列添加到TreeView(ColumnRecord columns):

Gtk::TreeModelColumn<Glib::ustring>* c;
for( int i = 0; i < numCols; i++ ) {
    c = new Gtk::TreeModelColumn<Glib::ustring>();
    columns.add(*c);
    list.append_column(titles[i], *c);
    iss.clear();
}

要使用预设的ColumnRecord获取某个行和列的元素,我会执行Gtk::TreeModel::Row row; row[columns.c1] = blah之类的操作。既然列没有命名,我将如何访问它们?

1 个答案:

答案 0 :(得分:1)

首先,这里有潜在的内存泄漏。 newing TreeModelColumn delete TreeModelColumnstd::vector看起来无法std::map。使用可以延长GUI生命周期的小部件,这可能不是什么大问题。另一个选择是使用gtkmm的manage功能,让它担心内存。

其次,为了解决您的问题,我过去处理此方案的方式是将{{1}}指针收集到{{1}}或{{1}}中,以便稍后访问它们。