(所有这些都是从实现自己的TreeModel的角度来看的,而不是使用现有的All)
如何在自己的TreeModel的C++实现中使用Gtk::TreeModelColumn?
据我所知,它的目的是唯一地标识列的类型,但是我如何在C++域中以这种方式使用它呢?
有没有办法将任意的GType (TreeModelColumn中的底层gtk对象)转换成C++类型,这样我就可以转换成它了?
如果不是-为什么它存在于gtkmm中?它的真正目的是什么?
发布于 2012-10-18 19:27:12
如何在自己的TreeModel的C++实现中使用Gtk::TreeModelColumn?
我不认为你需要这样做,我也不认为这样做是有意义的。
Gtk::TreeModel::Column供应用程序在使用任何Gtk::TreeModel:http://developer.gnome.org/gtkmm-tutorial/unstable/sec-treeview-model.html.en#treeview-model-columns时使用
它在API中的用途是避免您(作为应用程序开发人员)必须记住列索引和列类型,并允许您使用其特定类型来调用重载方法,而无需担心这是如何工作的。
但是,如果您试图创建一个具有创建(TreeModelColumnRecord)(如ListStore和TreeStore )的通用数据模型,它将为您提供这些类型。
而TreeModelColumn::ElementType可以告诉您C++类型:http://git.gnome.org/browse/gtkmm/tree/gtk/gtkmm/treemodelcolumn.h#n131,但是您确实需要一些dynamic_cast<>ing才能真正打开C++类型。关于如何存储东西的决定完全取决于你。但如果我是你,我会尽可能使用ListStore或TreeStore。
https://stackoverflow.com/questions/12952744
复制相似问题