添加行的 gtkmm 树模型
gtkmm treemodel adding rows
我对本教程中的这个列表存储如何工作有些困惑 http://developer.gnome.org/gtkmm-tutorial/3.0/sec-treeview-examples.html.en
我几乎了解除行[m_Columns.m_ITEM] =值之外的所有内容
我的问题是它如何根据传递给重载 [] 的其他对象知道将值设置为行中的哪一列。它只是检查类型是否相同吗?如果是这样,那么如果您有两列相同类型的列会发生什么?它是否基于内存偏移量来确定它是哪一列?
我很难弄清楚它是如何从提供 m_Columns 实例的成员到确定它应该将值放入哪一列的。
我想如果我能让某人解释内部如何在树模型系统上工作,那就太好了,比如创建会发生什么,然后添加新行的每一步,什么不是。
有一些模板技巧正在进行。TreeRow
中的数组运算符对于 TreeModelColumn<ColumnType>
的每个实例化都会重载。为了允许您分配给列以及读取它,它返回一个代理对象(TreeValueProxy<ColumnType>
),它实际实现这些操作。 代理对象是实现类似数组的对象的标准C++技术。代理包含对相关TreeRow
和TreeModelColumn<ColumnType>
对象的引用,这些对象用于执行实际工作。
TreeModelColumn<ColumnType>
对象还存储与列类型对应的gobject
类型,以及与列位置对应的整数。 这最终用于与 TreeRow::set_value<ColumnType>()
和 TreeRow::get_value<ColumnType>()
开始的 gtk+ 库进行接口。
如果你想要凌乱的细节,要查看的源文件在这里用于TreeRow,这里用于TreeModelColumn。
- QTableView:endMoveRows在模型中重置水平页眉大小
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 将IBM Rhapsody模型集成到VS 2019中
- 旋转模型矩阵时的形状失真
- C++GTKMM gui循环依赖关系
- 成员函数调用和C++对象模型
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 打印 ONNXRUNTIME::图形没有模型
- gtkmm 显示文件内容
- C++内存模型和位字段的最大序列
- Gtkmm 会不断检查 Gtk::日历上的所选日期是否发生变化
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 使用SIR模型的疾病爆发模拟
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 如何在 ECS 模型中组织实体?
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- Libtorch:如何加载ONNX模型?
- 如何在代码块中安装 gtkmm?
- 添加行的 gtkmm 树模型
- 实现自定义 gtkmm 树模型