1

我有一个动态填充的 wxGrid。我想在每一行中存储一些不应该向用户显示的信息。将数据与行关联的最佳方法是什么?我应该只创建一个隐藏列还是有更好的方法?

4

2 回答 2

3

创建隐藏列是最快的,但确实是一种非常丑陋的方法。如果您可以证明努力的合理性,那么您应该更好地创建自己的网格表基类。您自己的wxGridTableBase派生类可以保存您需要的任何信息,而无需在网格中显示它。不幸的是,该类的文档很少或几乎不存在。

有关示例,请参见 wxWidgets 示例目录中的网格演示,特别是BugsGridTable类。您会注意到,您不必存储网格将显示的字符串,但您可以在GetValue()方法中格式化数据。这可能会好很多,无论是在内存消耗方面,还是因为您可以即时更改显示数据的格式。

切换到自定义网格表基类对 Firebird 关系数据库的管理工具FlameRobin的结果集数据网格的速度、内存消耗和功能产生了很大影响。您可以随时查看它的源代码,了解我们如何使用 wxGrid。

于 2008-11-11T20:57:36.220 回答
0

使用 SetRowLabelValue 将值存储在行标签中并隐藏行标签。

于 2015-04-08T12:23:06.293 回答