【发布时间】:2008-11-10 21:29:55
【问题描述】:
我有一个动态填充的 wxGrid。我想在每一行中存储一些不应该向用户显示的信息。将数据与行关联的最佳方法是什么?我应该只创建一个隐藏列还是有更好的方法?
【问题讨论】:
标签: wxwidgets
我有一个动态填充的 wxGrid。我想在每一行中存储一些不应该向用户显示的信息。将数据与行关联的最佳方法是什么?我应该只创建一个隐藏列还是有更好的方法?
【问题讨论】:
标签: wxwidgets
创建隐藏列是最快的,但确实是一种非常丑陋的方法。如果您可以证明努力是合理的,那么您应该更好地创建自己的网格表基类。您自己的 wxGridTableBase 派生类可以保存您需要的任何信息,而无需在网格中显示。不幸的是,该类的文档很少或几乎不存在。
有关示例,请参见 wxWidgets 示例目录中的网格演示,特别是 BugsGridTable 类。您会注意到,您不必存储网格将显示的字符串,但您可以在 GetValue() 方法中格式化数据。这可能会好很多,无论是在内存消耗方面,还是因为您可以即时更改显示数据的格式。
切换到自定义网格表基类对 FlameRobin(Firebird 关系数据库的管理工具)的结果集数据网格的速度、内存消耗和功能产生了很大影响。您可以随时查看它的源代码,了解我们如何使用 wxGrid。
【讨论】:
使用 SetRowLabelValue 将值存储在行标签中并隐藏行标签。
【讨论】: