Перемещение фокуса на следующий QLineEdit с помощью ENTER - PullRequest
1 голос
/ 17 июня 2020

Я написал приложение для расчета суммы денег путем ввода количества монет и банкнот для расчета общей стоимости. Я могу перейти к следующему текстовому полю, используя клавишу «Tab», но я бы предпочел использовать клавишу «Enter». Как я могу установить клавишу ввода вместо клавиши табуляции по умолчанию для перехода к следующему полю QLineEdit?

ScreenShot

1 Ответ

1 голос
/ 17 июня 2020

Вы должны переопределить метод event(), чтобы при обнаружении события KeyPress и клавишах были Enter , затем вызов focusNextPrevChild():

import sys

from PyQt5 import QtCore, QtWidgets


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        lay = QtWidgets.QVBoxLayout(self)

        for i in range(10):
            le = QtWidgets.QLineEdit()
            lay.addWidget(le)

    def event(self, event):
        if event.type() == QtCore.QEvent.KeyPress:
            if event.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter):
                self.focusNextPrevChild(True)
        return super().event(event)


app = QtWidgets.QApplication(sys.argv)

w = Widget()
w.show()

sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...