2013-03-19 80 views
0

我正在這樣做是爲了numCols列添加到一個TreeView(ColumnRecord columns):gtkmm的TreeView控件:訪問動態添加列

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

首先,您在這裏有潛在的內存泄漏。你newing增加一個TreeModelColumn與看起來沒有辦法永遠delete它。通過一個可以延長GUI使用壽命的小部件,這可能不是什麼大問題。另一個選擇是使用gtkmm的manage功能,讓它擔心內存。其次,爲了解決您的問題,過去我處理這種情況的方式是將我的TreeModelColumn指針收集到std::vectorstd::map中,以便稍後訪問它們。