我有3个QLineEdits和一个Submit按钮的GUI。默认情况下,我可以使用TAB键移动到下一个QLineEdit。但是,我如何注册RETURN键作为触发器以移至下一个QLineEdit。另外,我有3个QLineEdit,在最后一个QLineEdit的结尾,我希望注册RETURN来触发QButton。
可以请教如何做吗?我可以使用QShortcut触发文本框3的提交功能。但是我不知道如何注册texbox1突出显示textbox2,然后将textbox2突出显示为textbox3。
最好的问候。
from PyQt5.QtWidgets import QWidget, QMainWindow, QVBoxLayout, QHBoxLayout, QGroupBox, QApplication, QLabel, QLineEdit, QPushButton
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeyEvent
class App(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(10, 200, 400, 200)
self.createTestGroupBox()
self.mainLayout = QVBoxLayout()
self.mainLayout.addWidget(self.testGroupBox)
self.setCentralWidget(QWidget(self))
self.centralWidget().setLayout(self.mainLayout)
self.show()
def createTestGroupBox(self):
self.testGroupBox = QGroupBox("Group Box")
self.nameLabel = QLabel()
self.nameLabel.setText("Name:")
self.colorLabel = QLabel()
self.colorLabel.setText("Object:")
self.numberLabel = QLabel()
self.numberLabel.setText("Number:")
# user input
self.textbox1 = QLineEdit(self)
self.textbox2 = QLineEdit(self)
self.textbox3 = QLineEdit(self)
self.shortcut = QShortcut(Qt.Key_Return, self.textbox3, self.submit)
# submit button
self.submitBtn = QPushButton('Submit')
self.submitBtn.clicked.connect(self.submit)
# Input Labels
inputLabelLayout = QHBoxLayout()
inputLabelLayout.addWidget(self.nameLabel)
inputLabelLayout.addWidget(self.colorLabel)
inputLabelLayout.addWidget(self.numberLabel)
# Input boxes
inputLayout = QHBoxLayout()
inputLayout.addWidget(self.textbox1)
inputLayout.addWidget(self.textbox2)
inputLayout.addWidget(self.textbox3)
# Buttons
btnLayout = QHBoxLayout()
btnLayout.addWidget(self.submitBtn)
layout = QVBoxLayout()
layout.addLayout(inputLabelLayout)
layout.addLayout(inputLayout)
layout.addLayout(btnLayout)
self.testGroupBox.setLayout(layout)
def submit(self):
print ("Submit Button Press")
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())