PyQt:lineEdit上的ReturnPressed方法连接到错误的按钮

时间:2016-04-02 17:47:09

标签: python pyqt

我有一个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()方法的结果相同。以前发生过这种情况,我真的很感谢我在哪里出错了。

由于

1 个答案:

答案 0 :(得分:2)

如果QDialog self.clfdlg.next.setAutoDefault(False) self.clfdlg.next.setDefault(False) self.clfdlg.back.setAutoDefault(False) # etc ... ,您可能会违反按钮的default属性。尝试在所有相关按钮上明确清除此属性:

{{1}}