2016-04-02 10 views
1

私は行編集と3つのボタンを持っています。次に、戻って終了します。 line editにフォーカスがある間にユーザーがenterを押すと、nextを押すのと同じにします。これは、のinit方法で私のコードです:PyQt:LineEditのReturnPressedメソッドが間違ったボタンに接続しています

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()) 

代わりに次の()メソッドが呼び出されるので、仕上げ()メソッドが呼び出されています。私も試したことがあります:

self.clfdlg.lineEdit.returnPressed.connect(lambda: self.next()) 

これはfinish()メソッドの呼び出しと同じ結果になります。以前誰にも起こったことがありますが、私が間違っている場所については助言をいただきたいと思います。 clfdlgQDialogある場合

おかげ

答えて

2

は、おそらくボタンのdefault財産のファウルを下降しています。関連するすべてのボタンでこのプロパティを明示的に消去してみてください:

self.clfdlg.next.setAutoDefault(False) 
    self.clfdlg.next.setDefault(False) 
    self.clfdlg.back.setAutoDefault(False) 
    # etc ... 
+0

これは完璧に機能しました、ありがとうございます! – lpdudley

関連する問題