【问题标题】:Implementing a custom gtkmm treemodel实现自定义 gtkmm 树模型
【发布时间】:2013-01-30 04:34:47
【问题描述】:

我正在尝试在 gtkmm 中实现自定义树模式(这样做的原因是使用一些分页显示来自数据库的行)。我已经实现了所有 vfunc 方法,但我仍然收到以下错误:

glibmm-CRITICAL **: Glib::Interface::Interface(const Glib::Interface_Class&): assertion `gobject_ != 0' failed

GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

在实例化时,我有以下代码:

ModelTracks::ModelTracks(Library* library_ptr)
        : Glib::ObjectBase(typeid(ModelTracks)),
          Gtk::TreeModel(),
        _library_ptr(library_ptr) {
    _sort_direction[0] = true;
    _sort_direction[1] = true;
    _sort_direction[2] = true;
    _sort_direction[3] = true;
    _sort_order[0] = 0;
    _sort_order[1] = 1;
    _sort_order[2] = 2;
    _sort_order[3] = 3;
}

有人可以帮助我或者有一个自定义 Gtk::TreeModel 的工作示例吗?

【问题讨论】:

  • 我可以通过向 Glib::Object 添加继承来消除第二个警告,所以剩下的问题是 Glib::Interface 仍然初始化错误。

标签: c++ gtkmm


【解决方案1】:

尝试在 Gtk::TreeModel 之前初始化 Glib::Object。

ModelTracks::ModelTracks(Library* library_ptr) :
  Glib::ObjectBase(typeid(ModelTracks)),
  Glib::Object(),
  Gtk::TreeModel(),
  _library_ptr(library_ptr)
{
  _sort_direction[0] = true;
  _sort_direction[1] = true;
  _sort_direction[2] = true;
  _sort_direction[3] = true;
  _sort_order[0] = 0;
  _sort_order[1] = 1;
  _sort_order[2] = 2;
  _sort_order[3] = 3;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 2021-12-21
    • 1970-01-01
    • 2011-11-23
    • 2019-09-30
    • 1970-01-01
    • 2012-01-01
    • 2014-10-04
    相关资源
    最近更新 更多