【问题标题】:keyboard can't be used directily in Toplevel python键盘不能在Toplevel python中直接使用
【发布时间】:2017-05-18 19:56:34
【问题描述】:

我正在使用Toplevel 生成两个窗口。但是当它打开第二个窗口时,键盘并没有立即激活(两个窗口同时打开),我需要先单击第二个窗口才能使用键盘。我尝试使用root.lift 修复它,但它不起作用。这里有什么问题?

我的代码:

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

感谢您的帮助!

【问题讨论】:

  • 你试过用focus_set给窗口焦点吗?
  • 谢谢@BryanOakley!这是一个焦点问题。它有效!

标签: python tkinter keyboard window toplevel


【解决方案1】:

这是键盘焦点问题。我在绑定键盘之前添加focus_set(),它解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多