QTableWidget 分页显示demo
时间: 2023-02-06 19:43:41 浏览: 286
QTableWidget 是一个 Qt 中的小部件,用于显示二维表格数据。如果你想在 QTableWidget 中实现分页显示,你可以使用以下方法:
1. 使用 setRowCount 和 setColumnCount 设置表格的行数和列数,例如:
```
tableWidget->setRowCount(100);
tableWidget->setColumnCount(10);
```
2. 使用 setItem 方法设置表格的单元格的内容,例如:
```
for (int row = 0; row < 100; row++) {
for (int col = 0; col < 10; col++) {
QTableWidgetItem *item = new QTableWidgetItem(QString("%1,%2").arg(row).arg(col));
tableWidget->setItem(row, col, item);
}
}
```
3. 创建一个 QSpinBox 来控制分页的编号,并使用 setMinimum 和 setMaximum 设置范围,例如:
```
QSpinBox *pageSpinBox = new QSpinBox;
pageSpinBox->setMinimum(1);
pageSpinBox->setMaximum(10);
```
4. 连接 QSpinBox 的 valueChanged 信号到一个槽函数,在槽函数中使用 setRange 方法设置表格的显示范围,例如:
```
connect(pageSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), [=](int page) {
int startRow = (page - 1) * pageSize;
int endRow = startRow + pageSize - 1;
tableWidget->setRangeSelected(QTableWidgetSelectionRange(startRow, 0, endRow, tableWidget->columnCount() - 1), true);
});
```
5. 在表格的单元格被选中时,使用 setCurrentCell 方法将光标移到指定的单元格,例如:
```
connect(tableWidget, &QTableWidget::itemSelectionChanged, [=]() {
QList<QTableWidgetItem*> selectedItems = tableWidget->selectedItems();
if (!selectedItems.isEmpty()) {
QTableWidgetItem *item = selectedItems.first();
阅读全文