wxWidgets - wxGrid - 读/写非字符串单元格值

时间:2016-06-07 21:43:27

标签: wxwidgets

我有一个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()有点丑陋以及带有字符串流的模板函数会更好的事实之外,有没有办法让非字符串值更好地进出单元格?

我在看编辑和渲染器,但无法弄清楚。

1 个答案:

答案 0 :(得分:1)

如果您担心效率,几乎可以肯定应该使用派生自wxGridTableBase的自定义表类,而不是使用默认的简单wxGridStringTable实现,它将所有内容存储为字符串。然后,更重要的是,如果它在您的情况下有意义,您可以使用wxGridCellNumberRenderer来调用您的表GetValueAsLong()方法而不是GetValue()(返回一个字符串)。

这些都在wxGrid sample中得到了证明,特别是在那里看BugsGridTable

祝你好运!