2017-05-18 10 views
0

私はToplevelを使って2つのウィンドウを作成しています。しかし、2番目のウィンドウを開くと、キーボードは即座に起動されません(両方のウィンドウが同時に開かれます)。キーボードを使用するには、最初に2番目のウィンドウをクリックする必要があります。私はそれを修正するためにroot.liftを使用しようとしましたが、動作しません。ここでの問題は何ですか?キーボードをToplevelのpythonで直接使用することはできません

マイコード:あなたの助けを

class practisePage1(): 
     def __init__(self, master): 
      self.master = master 
      self.master.update_idletasks() 
      self.master.attributes('-fullscreen', True) 
      self.button1 = Button(self.master, text="NEXT", bg='gray77', command=self.gotoPage3, anchor=CENTER) 
      self.button1.pack() 

     def gotoPage1(self): 
      self.root1 = Toplevel(self.master) 
      self.instPage1 = practisePage1(self.root1) 

class practisePage1(): 
     def __init__(self, master): 
      self.master = master 
      self.master.update_idletasks() 
      self.master.attributes('-fullscreen', True) 

      self.choiceA = master.bind('a', self.showResultEx1) #can't be used directly, the window needs to be clicked first 
      self.choiceB = master.bind('l', self.showResultEx2) #can't be used directly. 


     def showResultEx1(self): 
      #some codes 
     def showResultEx2(self): 
      #some codes 

ありがとう!

+2

あなたは 'focus_set'でウィンドウのフォーカスを与えてみましたか? –

+0

ありがとう@BryanOakley!それは焦点の問題です。できます! – Kay

答えて

1

キーボードフォーカスの問題です。私はキーボードをバインドする前にfocus_set()を追加して、問題を解決します。

関連する問題