Я работаю над графическим приложением, и в начале запуска я хотел бы задать пользователю один вопрос конфигурации. Графическая структура (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 в отдельное приложение, которое, как я полагаю, цепляется за мое, но мне интересно, есть ли способ убить tk и вернуть клавиатуру, не выходя полностью из моего приложения.
Обновление: Пробовал root.quit(), который, похоже, возвращает клавиатуру, но я получаю сообщение об ошибке «Fatal Python: PyEval_RestoreThread: NULL tstate» при выходе из моей программы, что не является идеальным.
Тот же результат, что и root.quit(), но спасибо в любом случае. –