本文针对大数据实时刷新显示需求,考虑在不停new QTableWidgetItem条件下内存逐步增加情况,有几点感受:
1、每个周期批量new QTableWidgetItem之前,先获取QTableWidget的rowCount,并执行removeRow步骤,无法解决占用内存逐步增加情况。
ui.dataplay_btn->clearContents();
quint16 table_listCount = ui.dataplay_btn->rowCount();
for (int i = table_listCount; i >= 0; i--)
{
ui.dataplay_btn->removeRow(i);
}
2、每周期批量new QTableWidgetItem之后,直接delete QTableWidgetItem,内存不会增加,但无法实现实时显示目的;
解决措施:
结合数据量需求,首先在初始化时,生成固定的Row、Column,如:
ui.dataplay_btn->setRowCount(500); //500行
ui.dataplay_btn->setColumnCount(12); //12列
写数据时,在0~500行中滚动刷新,首周期创建new QTableWidgetItem,后续周期只是改变其setText值,以解决内存随数据实时加载占用内存增加问题。