QTableWidget数据刷新卡顿
时间: 2024-02-25 19:52:41 浏览: 98
QTableWidget先去读全部的,再进行分页显示,表格固定的是一百行,每次操作对这一百行数据进行刷新,虚拟出完整表格的效果
5星 · 资源好评率100%
QTableWidget的数据刷新卡顿通常是由于频繁调用setItem()方法引起的,因为每次更新单元格数据都会触发QTableWidget的重绘操作,导致界面的卡顿。为了避免这种情况,可以使用以下两种方法:
1. 使用QTableWidget的setUpdatesEnabled()方法关闭更新操作,在更新完成后再打开。这样可以避免频繁的重绘操作。示例代码:
```cpp
ui->tableWidget->setUpdatesEnabled(false);
// 更新数据
ui->tableWidget->setUpdatesEnabled(true);
```
2. 将所有要更新的数据存储在一个二维数组中,然后一次性更新到表格中。这种方法只需要调用一次setItem()方法,避免了频繁的重绘操作。示例代码:
```cpp
QVector<QVector<QString>> data; // 存储数据的二维数组
// 更新数据
ui->tableWidget->setRowCount(data.size());
ui->tableWidget->setColumnCount(data[0].size());
for (int i = 0; i < data.size(); i++) {
for (int j = 0; j < data[i].size(); j++) {
QTableWidgetItem* item = new QTableWidgetItem(data[i][j]);
ui->tableWidget->setItem(i, j, item);
}
}
```
上述两种方法都可以有效避免QTableWidget数据刷新卡顿的问题。
阅读全文