2017-05-18 3 views
0

Ich verwende Toplevel, um zwei Fenster zu erzeugen. Aber wenn es das zweite Fenster öffnet, wird die Tastatur nicht sofort aktiviert (beide Fenster werden gleichzeitig geöffnet), ich muss zuerst auf das zweite Fenster klicken, um die Tastatur zu benutzen. Ich habe versucht, root.lift zu verwenden, um es zu beheben, aber es funktioniert nicht. Was ist das Problem hier?Tastatur kann nicht direkt in Toplevel Python verwendet werden

Meine Codes:

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 

Vielen Dank für Ihre Hilfe!

+2

Haben Sie versucht, den Fensterfokus mit 'focus_set' zu geben? –

+0

Danke @BryanOakley! Es ist ein Fokusproblem. Es klappt! – Kay

Antwort

1

Es ist Tastatur Fokus Problem. Ich füge focus_set() hinzu, bevor ich meine Tastatur binde, löst es das Problem.

Verwandte Themen