QT 5 verticalHeaderItem 不返回合并左上角单元格
时间: 2024-02-28 17:54:52 浏览: 68
在QT 5中,`verticalHeaderItem()`方法只返回指定行的第一个单元格的`QTableWidgetItem`对象,而不是该行的左上角单元格的`QTableWidgetItem`对象。因此,如果该行的左上角单元格是一个合并单元格,`verticalHeaderItem()`方法返回的可能是该合并单元格中的任意一个单元格的`QTableWidgetItem`对象,而非该合并单元格的左上角单元格的`QTableWidgetItem`对象。
如果需要获取该行左上角单元格的`QTableWidgetItem`对象,可以使用`QTableWidget`的`item()`方法来实现。具体的代码如下:
```cpp
int row = tableWidget->row(item);
int col = tableWidget->column(item);
int rowSpan = tableWidget->rowSpan(row, col);
int rowTop = row - (rowSpan - 1);
QTableWidgetItem *topLeft = tableWidget->item(rowTop, col);
```
其中,`rowSpan()`方法返回该项所在的合并单元格所占据的行数,`rowTop`变量计算出了该合并单元格的左上角单元格的行索引,然后使用`item()`方法获取该单元格的`QTableWidgetItem`对象。需要注意的是,如果该单元格并没有设置`QTableWidgetItem`对象,`item()`方法会返回`nullptr`。