2017-05-18 19 views
0

나는 Toplevel을 사용하여 두 개의 창을 생성합니다. 그러나 두 번째 창이 열리면 키보드가 즉시 활성화되지 않고 (두 창은 동시에 열림) 키보드를 사용하려면 두 번째 창을 먼저 클릭해야합니다. 나는 그것을 수정하기 위해 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()을 추가하면 문제가 해결됩니다.