【问题标题】:Moving focus to next QLineEdit using ENTER使用 ENTER 将焦点移动到下一个 QLineEdit
【发布时间】:2020-06-18 22:40:23
【问题描述】:

我写了一个应用程序来计算金额,通过输入硬币和钞票的数量来计算总价值。我可以使用“tab”键跳转到下一个文本字段,但我更愿意使用“enter”键。如何设置 'enter' 而不是默认的 'tab' 键以移动到下一个 QLineEdit 字段?

【问题讨论】:

    标签: python pyqt5


    【解决方案1】:

    您必须重写 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_())
    

    【讨论】:

    • 这正是我所需要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 2023-03-27
    • 2016-06-16
    • 2021-11-08
    • 2012-05-11
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多