c++ - wxwidgets 快速定期数据更新

标签 c++ wxwidgets

我想使用循环或每秒调用 10 次的回调函数更新 wxwidgets 中列表的行或网格的单元格。但是应用程序会等到循环的最后一次运行,然后显示最后一个值。我尝试了 refresh() 和 ForceRefresh() 但它不起作用。我怎样才能做到这一点?

for(int i=0; i< 30000; i++) {
   list->SetItem(itemIndex, 0, wxString::Format(wxT("%i"),i));
   //grid->SetCellValue( 0, 0, wxString::Format(wxT("%i"),i));
}

编辑:我的意思是像时钟计数器或打印进度率一样实时输出(打印、流式传输)数据。使用虚拟样式也不会经常更新它。

最佳答案

我不确定您的代码中的 listgrid 是什么,但无论如何,这不是您应该做的。 30000 个项目不可能同时显示在您的屏幕上,那么为什么要设置所有项目的值呢?相反,使用“虚拟”wxListCtrl,即使用 wxLC_VIRTUAL 样式,或(始终“虚拟”)wxGridwxDataViewCtrl 并在更改后更新您的数据并刷新项目。 GUI 控件将负责尽快显示可见项的更新值。

关于c++ - wxwidgets 快速定期数据更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22698986/

相关文章:

c++ - 使用参数从 cmd.exe 执行 MSYS

c++ - wxWidgets画波形比qt更好是因为原生函数支持吗?

c++ - 在对象中传递函数和运算符调用

c++ - 错误 : ISO C forbids declaration of `test' with no type

c++ - 无法与另一个项目共享头文件

c++ - 在 eclipse cdt 中链接静态库

c++ - 使用 boost::thread 崩溃

wxwidgets - Rainlendar 如何使用 wxWidgets 实现透明度

python - 我正在尝试制作一个具有可变透明度的 wx.Frame(基于 erase bk 事件中映射的 png)

c++ - 使用 Qt5 和 Crypto++ 时找不到 header