2011-07-20 5 views
0

私はTkinterを学ぼうとしていますが、私は問題に遭遇しています。ユーザーがEnterキーを押すと、Entryフィールドにあるものがコピーされます。 .bind()メソッドの使用を計画していましたが、キープレスを登録していないようです。私は複数の方法を試してみました。キーボード関連の場合は動作しません。Python/Tkinter:キーボードのキーで.bind()メソッドを使用するにはどうすればよいですか?

self.frame.bind("<Return>", self.testevent) #Doesn't Work 
self.frame.bind("<Enter>", self.testevent) #Works 
self.frame.bind("<Button-1>", self.testevent) #Works 
self.frame.bind("<F1>", self.testevent)  #Doesn't work 

スクリプトのコンパイル時にポップアップするエラーはありません。私は周りを見回して答えを見つけることができませんでした。

編集:私の文章の1つが混乱しました。

答えて

3

最初にself.frame.focus_set()に電話しなければならないようです。

+0

必ずしも「最初」であるとは限りません。デフォルトでは、フレームにはキーボードフォーカスはありません。 –

-1

私もそのようなことをやってみたが、うまくいかなかった。 Tk()の名前に応じて、tk.bind()またはroot.bind()を使用してください。しかし、Tk()のキーボードバインドが既に似ている場合は、self.frame.focus_set()の方法に従えばよいでしょう。

+0

ルートウィンドウへのバインドは、特定のフレームへのバインドとは異なる効果があります。問題はバインディングではなく、フレームに明示的に指定しない限り、キーボードにフォーカスがないという問題があります。 –

関連する問題