我有一个wxGrid来编辑数值数据数组。
我想知道什么是将非字符串数据输入和输出单元格的最佳方法,而无需始终通过字符串进行数字转换。 我已经使用SetCellEditor()来控制数据输入。
目前我用它:
// numeric value into cell
str.clear();
str << val1;
m_grid4->SetCellValue(row, col, str);
..
// read value from back into variable
val = atoi(m_grid4->GetCellValue(row, col));
除了atoi()有点丑陋以及带有字符串流的模板函数会更好的事实之外,有没有办法让非字符串值更好地进出单元格?
我在看编辑和渲染器,但无法弄清楚。
答案 0 :(得分:1)
如果您担心效率,几乎可以肯定应该使用派生自wxGridTableBase
的自定义表类,而不是使用默认的简单wxGridStringTable
实现,它将所有内容存储为字符串。然后,更重要的是,如果它在您的情况下有意义,您可以使用wxGridCellNumberRenderer
来调用您的表GetValueAsLong()
方法而不是GetValue()
(返回一个字符串)。
这些都在wxGrid sample中得到了证明,特别是在那里看BugsGridTable
。