PyQt 获取带标题标签的 TableView 单元格

1 投票
1 回答
2978 浏览
提问于 2025-04-17 21:40

我现在把SQL查询的结果加载到一个表格视图(TableView)里。

self.projectModel = QSqlQueryModel()
self.projectModel.setQuery(sql,db)

接下来,我需要根据表头的标签(几何形状)来选择特定的单元格。这个列的位置会根据不同的表格而变化。

当用户点击行的任何地方(不是几何形状那一列的单元格)时,我想要选中几何形状那一列的单元格。

目前我有一个和表格视图相关的代码

self.dlg.tableView.clicked.connect(self.cellClicked)

在那个函数里,我有

row = self.projectModel.currentIndex()

如果我使用QTableView.model(row, column)来选择索引,我就得指定行和列的数字。不过,这个数字会变化,所以我想用QTableView.model(row, 'geometry'),但模型需要的是整数。

有没有什么解决办法?

谢谢

1 个回答

3

看起来你只需要一个方法来根据列的标题找到对应的列,也就是说,类似于下面这样的东西:

def columnFromLabel(self, label):
    model = self.table.horizontalHeader().model()
    for column in range(model.columnCount()):
        if model.headerData(column, QtCore.Qt.Horizontal) == label:
            return column
    return -1

撰写回答