2010-10-08 96 views
1

我正在开发图形应用程序,并且在运行开始时我想问用户一个配置问题。图形框架(Panda3D)具有丑陋的默认对话框,所以我想使用类似tkInter的东西来提供模式对话框。我尝试这样做:从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对话框到一个单独的应用程序,链到我的,我想,但我不知道是否有一种方法杀死传统知识和获取键盘背面没有完全退出我的应用程序。

更新:尝试root.quit(),似乎得到的键盘回来,但我从我的程序退出时,得到一个“致命的Python错误:PyEval_RestoreThread:NULL tstate”崩溃,这是不理想的。

回答

1

您是否尝试过:

grab_release(个体经营)
哪些呢:发布抢了这个小工具,如果当前设置。

其中“抓取将所有事件引导到此应用程序的小部件和后代 小部件”。

为:

root.grab_release() 

希望你有没有试过这一个。

+0

与root.quit()相同的结果,但无论如何感谢。 – 2011-03-07 21:41:42