Нажат сигнал ESC QTableWidgetItem

У меня есть QThread, который обновляет значения столбца QTableWidget. Когда пользователь дважды щелкает строку этого столбца, QThread прекращает обновление значений, позволяя пользователю редактировать последнее прочитанное значение.

Если пользователи нажимают Enter, выдается сигнал cellChanged(int, int), и я могу продолжить обновление значений. Но в случае Esc я не получаю сигнала об изменении и не знаю, когда возобновить обновление новых значений.

Если я повторно реализую метод фильтра событий QTableView для прослушивания клавиши Esc, я могу перезапустить обновление значений, но только если я нажму клавишу Esc 2 раза. В первый раз я выхожу из QTableWidgetItem. Можно ли его слушать в первую очередь?

Заранее спасибо.


person user2257190    schedule 18.11.2013    source источник


Ответы (1)


Что вам действительно нужно, так это уведомление о том, что редактирование ячейки завершено, независимо от того, как это могло произойти.

Один из способов добиться этого — повторно реализовать один из виртуальных методов, отвечающих за редактирование ячеек, а затем использовать его для генерации пользовательского сигнала:

class TableWidget(QtGui.QTableWidget):
    editingFinished = QtCore.pyqtSignal()

    def closeEditor(self, widget, hint):
        QtGui.QTableWidget.closeEditor(self, widget, hint)
        self.editingFinished.emit()
person ekhumoro    schedule 18.11.2013