QT 没有 ui->tableWidget->getSpan
时间: 2024-02-26 18:56:26 浏览: 58
用qt利用tablewidget等控件
如果您使用的是Qt 5或更高版本,可以使用`QTableWidget::item()`方法获取单元格的指针,再使用`QTableWidgetItem::rowSpan()`和`QTableWidgetItem::columnSpan()`方法获取单元格的行列跨度信息。
以下是一个示例代码:
```cpp
// 获取选中的行号
QList<int> selected_rows;
foreach (QTableWidgetItem *item, ui->tableWidget->selectedItems()) {
int row = item->row();
if (!selected_rows.contains(row)) {
selected_rows.append(row);
}
}
// 遍历每一个选中的行
foreach (int row, selected_rows) {
// 获取该行第一列的单元格指针
QTableWidgetItem *item = ui->tableWidget->item(row, 0);
if (item) {
// 获取单元格的行列跨度信息
int row_span = item->rowSpan();
int col_span = item->columnSpan();
// 如果该单元格被合并,将合并单元格中的所有行都选中
if (row_span > 1) {
for (int i = row; i < row + row_span; i++) {
ui->tableWidget->selectRow(i);
}
}
// 如果该单元格未被合并,直接选中该行
else {
ui->tableWidget->selectRow(row);
}
}
}
```
这段代码假设第一列是要合并单元格的列,如果合并单元格是在其他列,需要将代码中的0改为对应的列号。
阅读全文