我有一个lineEdit和三个按钮;接下来,回来和完成。如果用户在焦点位于lineEdit上时按下enter键,我希望它与按next键相同。这是我在 init 方法中的代码:
self.clfdlg.lineEdit.returnPressed.connect(lambda: self.clfdlg.next.click())
self.clfdlg.next.clicked.connect(lambda: self.next())
self.clfdlg.back.clicked.connect(lambda: self.back())
self.clfdlg.finish.clicked.connect(lambda: self.finish())
调用finish()方法而不是调用next()方法。我也尝试过:
self.clfdlg.lineEdit.returnPressed.connect(lambda: self.next())
这与调用finish()方法的结果相同。以前发生过这种情况,我真的很感谢我在哪里出错了。
由于
答案 0 :(得分:2)
如果QDialog
是 self.clfdlg.next.setAutoDefault(False)
self.clfdlg.next.setDefault(False)
self.clfdlg.back.setAutoDefault(False)
# etc ...
,您可能会违反按钮的default属性。尝试在所有相关按钮上明确清除此属性:
{{1}}