从tkinter获取键盘

时间:2010-10-08 23:58:01

标签: python tkinter

我正在开发一个图形应用程序,在运行开始时,我想向用户询问一个配置问题。图形框架(Panda3D)有丑陋的默认对话框,所以我想使用类似tkInter的东西来提供模态对话框。我试过这个:

import Tkinter
import tkMessageBox

root = Tkinter.Tk()
# hide the root window
root.withdraw()

config.PLAY_MUSIC = tkMessageBox.askyesno( "My App", 
       "Would you like this app to play music from your iTunes collection?" )

root.destroy()

这就是我想要的,但它似乎将所有进一步的键盘事件路由到tkInter而不是我的Panda3D应用程序。在此对话框后,我无需再使用tk做任何事情。

我想把tk对话框放到一个单独的应用程序链接到我的,我想,但我想知道是否有办法杀死tk并让键盘恢复而不完全退出我的应用程序。

更新:尝试了root.quit(),它确实让键盘恢复了,但是我从程序退出时遇到“致命的Python错误:PyEval_RestoreThread:NULL tstate”崩溃,这是不理想的。

1 个答案:

答案 0 :(得分:1)

你试过了吗?

<强> grab_release(个体)
这样做:如果当前设置,则为此小部件发布抓取。

其中“抓取将所有事件指向此及后代 应用程序中的小部件。“

如:

root.grab_release()

希望你没试过这个。