【问题标题】:Gtkmm TreeView: Accessing dynamically added columnsGtkmm TreeView:访问动态添加的列
【发布时间】:2013-03-19 00:02:51
【问题描述】:

我目前正在这样做以将 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 的操作。但是,既然这些列没有命名,我将如何访问它们?

【问题讨论】:

    标签: c++ treeview gtkmm


    【解决方案1】:

    首先,这里存在潜在的内存泄漏。你是newingTreeModelColumn,看起来永远不可能delete 它。对于一个持续 GUI 生命周期的小部件,这可能没什么大不了的。另一种选择是使用 gtkmm 的 manage 功能并让它担心内存。

    其次,为了解决您的问题,我过去处理这种情况的方式是将我的 TreeModelColumn 指针收集到 std::vectorstd::map 中,以便稍后访问它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-19
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多