我正在开发一个图形应用程序,在运行开始时,我想问用户一个配置问题。图形框架(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并取回键盘。
更新:已尝试根。退出,这似乎确实使键盘恢复正常,但我在退出程序时遇到“致命的Python错误:PyEval_RestoreThread:NULL tstate”崩溃,这并不理想。