2017-03-21 5 views
0

キーボード入力を待つTkinterのボタンをどのようにして与えられたら、変数を変更するのですか?たとえば、

ボタンを押す - >ユーザCを押して自分のキーボード上 - >文字Cへの変数の変更は、 - >ボタンはもはや入力を待ち

これが行うことは超簡単であれば申し訳ありません。私はtkinterの経験がなく、これを達成しようと努力して研究しましたが、私のすべての方法ではウィンドウがフリーズするか全く出力されません。

+0

GUIプログラムは入力を待機しません。 Tkinter 'Button'ウィジェットはキーボード入力に応答しません。おそらく、あなたがそれを行うことができる最も近いことは、それをクリックすることによって_押されたときに_関数を呼び出すことになるでしょう。 – martineau

+0

「ボタンはもう入力を待たない」とはどういう意味ですか? – Szabolcs

+0

私はtkinterチュートリアルを見ていたときからそれを幾分認識しています。私は 'pynput'を使ってみましたが、それもうまくいきませんでした。あなたが気づいているモジュールはありますか?それはキーボード入力を待つことができるtkinterによって呼び出される関数を持つことができるでしょうか? –

答えて

0

このスニペットを試してみてください:あなたが検出ボタンをクリックし、キーを押したとき

from Tkinter import * 

class GUI(Frame): 

    def __init__(self,master=None): 
     Frame.__init__(self, master, width=200, height=200) 

     self.key = '' 
     self.key_detection = False 

     self.detect_button = Button(master, text="Detect", command=self.button_click) 
     self.detect_button.pack() 

     self.bind_all("<Key>", self.key_event) 

    def key_event(self, event): 
     if self.key_detection: 
      self.key = event.char 
      print self.key 
      self.key_detection = not self.key_detection 

    def button_click(self): 
     self.key_detection = not self.key_detection 

if __name__ == "__main__": 
    gui_frame = GUI() 
    gui_frame.mainloop() 

、キーの値は、それがコンソールに出力されますが、変数self.keyに格納され、もう一度[検出]ボタンを押すまで、キー検出はオフになります。

[検出]ボタンを使用すると、キー検出のオン/オフを切り替えることができます。

あなたが探していたものです。

+0

ありがとう、まさに私が探していたものです。 <3 –

関連する問題