gpt4 book ai didi

c++ - 如何使用 Gtk::Builder 将正确的 Glib::RefPtr 存储到非小部件

转载 作者:行者123 更新时间:2023-11-30 05:41:14 26 4
gpt4 key购买 nike

通过使用 Gtk::Builderget_widget 函数,可以很简单地为任何小部件获取 Glib::RefPtr,但是当在获取其他对象时,相应的 get_object 函数返回 Glib::Object不容易转换为所需的类(例如 Gtk::TreeView).

这样做的合适方法是什么?

最佳答案

最好使用Glib::RefPtr<TheDerivedype>::cast_dynamic(object) .

但是,Gtk::TreeView(您在问题中提到的)是一个 Gtk::Widget,因此您将使用 get_widget() 而不是 get_object()。

如果你的意思是,Gtk::TreeModel,好吧,在 Glade 中定义 GtkTreeModels,用于 gtkmm C++ 代码,这可能是可行的,因为我们最近在 gtkmm 中添加了一些修复: https://bugzilla.gnome.org/show_bug.cgi?id=742637

但这不是我们通常期望的工作 - 许多 C++ 开发人员更喜欢在代码中完全定义 DataModel 结构的静态类型安全,而不依赖于 C 和 C++ 类型之间的转换。例如:https://developer.gnome.org/gtkmm-tutorial/stable/sec-treeview-model.html.en#treeview-model-liststore

关于c++ - 如何使用 Gtk::Builder 将正确的 Glib::RefPtr 存储到非小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com