添加一行内容的代码写法
ui->tWt_items->insertRow(0);
ui->tWt_items->setItem(0,0,new QTableWidgetItem(QString::number(记录编号)));
ui->tWt_items->setItem(0,1,new QTableWidgetItem(记录条码));
ui->tWt_items->setItem(0,2,new QTableWidgetItem(记录状态));
ui->tWt_items->setItem(0,3,new QTableWidgetItem(记录时间));
ui->tWt_items->setItem(0,4,new QTableWidgetItem(记录机台号));
但涉及到需要快速添加大批量数据时,如果用for或者while,很可能会ui刷新过快导致程序崩溃闪退。
即使把上述代码新建一个线程处理也会使ui刷新过快导致程序崩溃闪退。
解决方法:
1.新建一个QTableWidget *暂存表格;对象。
2.然后 暂存表格 = ui->tWt_items;
3.接着新建一个线程处理数据添加,比如如下代码,如果数据量大的话,显示会有点延迟,但不会影响程序正常运行。
for(int i = 0;i<数据库画面.读取列表.count();i++)
{
int 当前行数 = 暂存表格->rowCount();
暂存表格->insertRow(当前行数);//插入一行到列表
暂存表格->setItem(当前行数,0,new QTableWidgetItem(数据库画面.读取列表.at(i).at(0).toString()));//编号单元格
暂存表格->setItem(当前行数,1,new QTableWidgetItem(数据库画面.读取列表.at(i).at(1).toString()));//条码单元格
暂存表格->setItem(当前行数,2,new QTableWidgetItem(数据库画面.读取列表.at(i).at(2).toString()));//状态单元格
暂存表格->setItem(当前行数,3,new QTableWidgetItem(数据库画面.读取列表.at(i).at(3).toString()));//时间单元格
暂存表格->setItem(当前行数,4,new QTableWidgetItem(数据库画面.读取列表.at(i).at(4).toString()));//机台号单元格
}