获取QTableview被选中框的数据
时间: 2023-10-21 12:07:22 浏览: 124
您可以使用QTableView的selectedIndexes()方法获取当前选中单元格的QModelIndex对象列表,然后遍历这个列表,通过model的data()方法获取相应单元格的数据。以下是一个简单的示例代码:
```
QModelIndexList selectedList = tableView->selectedIndexes();
foreach(QModelIndex index, selectedList) {
QVariant data = index.data(Qt::DisplayRole);
// 处理获取到的数据
}
```
在这个示例中,tableView是您的QTableView对象,selectedList是获取到的选中单元格的QModelIndex对象列表。通过遍历selectedList,获取每个单元格的数据并进行处理。在这里,我们使用了DisplayRole来获取单元格的显示数据,您可以根据需要使用其他的Role。
相关问题
qtableview双击获取当前行数据
您可以使用以下代码来实现通过双击 QTableView 获取当前行的数据:
```python
tableWidget = QTableView()
model = QStandardItemModel()
tableWidget.setModel(model)
def on_doubleclick(index):
row = index.row()
col = index.column()
item = tableWidget.model().item(row, col)
print(item.text())
tableWidget.doubleClicked.connect(on_doubleclick)
```
这段代码中,我们创建了一个 QTableView 和对应的 QStandardItemModel,然后通过 `doubleClicked` 信号来响应双击事件。在 `on_doubleclick` 函数中,我们可以通过 `index` 参数获取当前行和列的索引,然后通过 `model()` 函数获取对应项的数据,并将其打印出来。
获取qtableview的标题
要获取QTableView的标题,您可以使用以下代码:
```python
table_view = QTableView()
model = table_view.model()
# 获取标题
header_labels = [model.headerData(i, Qt.Horizontal) for i in range(model.columnCount())]
print(header_labels)
```
这段代码假设您已经创建了一个QTableView并设置了其模型。通过调用`model()`方法,我们可以获取到QTableView的模型。然后,使用`headerData()`方法来获取每个列的标题,其中`Qt.Horizontal`表示水平方向的标题。最后,将标题存储在一个列表中并进行打印。
请注意,这段代码的有效性取决于您已经设置了正确的模型和标题。如果您使用的是QStandardItemModel,请确保在设置标题时使用`setHorizontalHeaderLabels()`方法。