PyQt Получить ячейку из TableView с меткой заголовка

В настоящее время я загружаю результаты SQL-запроса в TableView.

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

Затем мне нужно выбрать конкретную ячейку на основе метки заголовка (геометрия). Этот столбец будет перемещаться в зависимости от другой таблицы, в которой выполняется поиск.

Когда пользователь щелкает в любом месте строки (НЕ в ячейке столбца геометрии), я хотел бы выбрать ячейку столбца геометрии.

На данный момент у меня есть это, связанное с tableView

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

И в этой функции у меня есть

row = self.projectModel.currentIndex()

Если я использую QTableView.model(строка, столбец) для выбора индекса, мне нужно указать номер строки и столбца. Однако это будет варьироваться, поэтому я хотел бы сделать QTableView.model(row, 'geometry'), однако модель ожидает целые числа.

Любые решения?

Спасибо


person tjmgis    schedule 10.03.2014    source источник


Ответы (1)


Итак, кажется, все, что вам нужно, это метод поиска столбца по его метке заголовка, то есть что-то вроде:

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
person ekhumoro    schedule 10.03.2014