繁体   English   中英

Gtk :: C ++中的TreeModelColumn / GType(gtkmm3)

[英]Gtk::TreeModelColumn / GType in C++ (gtkmm3)

(所有这些从实现自己的TreeModel的角度来看,而不是使用现有的TreeModel)

如何在自己的TreeModel的C ++实现中使用Gtk :: TreeModelColumn?

据我所知,它的目的是唯一识别列的类型,但我如何在C ++域中以这种方式使用它?

有没有办法以某种方式将任意GType(这是TreeModelColumn中的基础gtk对象)转换为C ++类型,所以我能够转换为它?

如果没有 - 为什么它存在于gtkmm? 它的真正目的是什么?

如何在自己的TreeModel的C ++实现中使用Gtk :: TreeModelColumn?

我不认为你需要,我认为这没有意义。

Gtk :: TreeModel :: Column供应用程序使用,当使用任何Gtk :: TreeModel时: http//developer.gnome.org/gtkmm-tutorial/unstable/sec-treeview-model.html.en#treeview-model -列

它在API中的目的是避免您(作为应用程序开发人员)必须记住列索引和列类型,并允许您使用其特定类型来调用重载方法,通常不用担心它是如何工作的。

但是,如果您尝试创建具有类似ListStore和TreeStore的create(TreeModelColumnRecord)的通用数据模型,那么将为您提供TreeModelColumn <>。 在这种情况下,您可以通过调用types()获取类似gtkmm的GType: http ://git.gnome.org/browse/gtkmm/tree/gtk/src/liststore.ccg#n26

TreeModelColumn :: ElementType可以告诉你C ++类型: http//git.gnome.org/browse/gtkmm/tree/gtk/gtkmm/treemodelcolumn.h#n131但是你真的需要一些dynamic_cast <> ing来真正打开C ++类型。 关于如何存储东西的决定完全取决于你。 但如果我是你,我会尽可能使用ListStore或TreeStore。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM