Hello World / plɹoM ollǝH

Programmers Live in Vain

QLineEditでEnter(Return)押したとき、フォーカスが勝手に移動してしまうのを防ぐ

何故かデフォルトの挙動ではフォーカスが他の場所に移動してしまう現象が発生したため、ラップして解決。

class MyLineEdit(QLineEdit):
    def __init__(self):
        super().__init__()

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Return:
            self.editFinished.emit()  # 編集終了シグナルを読んでおいたほうが良い
            return QWidget.keyPressEvent(self, event)  # widgetのkeyPressEventを呼ぶことにする
        return super().keyPressEvent(event)