python - 使用 ENTER 将焦点移动到下一个 QLineEdit
问题描述
我写了一个应用程序来计算金额,通过输入硬币和钞票的数量来计算总价值。我可以使用“tab”键跳转到下一个文本字段,但我更愿意使用“enter”键。如何设置 'enter' 而不是默认的 'tab' 键以移动到下一个 QLineEdit 字段?
解决方案
您必须重写该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_())
推荐阅读
- sql - SQL - 使用频率计算激励(模式)
- dsl - 我可以设置功能在空手道中运行的顺序吗?
- tensorflow - 用于大型 HDF5 文件的 TensorFlow 数据集管道
- pandas - Pandas 选择 DataFrame 中存在相对列值的行
- image - 我怎么能从零开始构建 docker 镜像?
- json - HTTP POST 请求和基本身份验证
- php - Laravel Session 在暂存环境中并不持久
- java - 如何查看 Netbeans 8.2 java 库编码
- javascript - 有什么方法可以“取消” promise.done() 被调用?
- awk - 如何将文件中的整数更改为十进制值