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

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

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

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

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

1 ответ

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

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

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

    def closeEditor(self, widget, hint):
        QtGui.QTableWidget.closeEditor(self, widget, hint)
        self.editingFinished.emit()
Другие вопросы по тегам