我能够从文本文件创建列,但这些只是字符串。
我用它来调整矢量大小,但只有Glib :: ustrings。所以我听说了union或者类似boost:variant但是我无法弄清楚如何给出例如test [0]数据类型Glib:ustring和test [1]类型bool等等。或者还有另一种更简单的方法来处理GTKmm中的列
union DTypes
{
Glib::ustring s;
bool b;
int i;
};
class ModelColumns : public Gtk::TreeModel::ColumnRecord
{
public:
std::vector<Gtk::TreeModelColumn<Glib::ustring>> test;
void append_column()
{
++t_size;
test.resize(t_size);
add (test[t_size-1]);
}
private:
int t_size=0;
};
顺便说一下它正在运行,每一列都存在。
m_refTreeModel = Gtk::ListStore::create(m_Columns);
m_TreeView.set_model(m_refTreeModel);
m_refTreeSelection = m_TreeView.get_selection();
m_refTreeSelection->signal_changed().connect( sigc::mem_fun(*this, &MyWindow::on_selection_changed));
for (int i=0; i<categorycount; i++)
{
m_TreeView.append_column_editable(category[i].substr(ci_count),m_Columns.test[i]);
}