Почему мой код TKinter GUI работает из интерактивной оболочки, а не при запуске из файла? - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь взять некоторые из моих кодов с интерфейсом командной строки и дать им GUI. Тем не менее, я сталкиваюсь с проблемой. Может ли кто-нибудь помочь мне понять, почему, когда я запускаю свой код из файла, ничего не происходит, но если я запускаю его в интерактивном режиме, он работает нормально? Простой пример ниже. Кстати, я бегу Python 3.8.1 на Windows 10. Заранее спасибо!

import tkinter as tk
import tkinter.ttk as ttk
#--------------------------
window = tk.Tk()
window.title('Test Window')
window.geometry('1000x800') 

1 Ответ

1 голос
/ 27 января 2020

Это потому, что вы не вызываете функцию mainloop. Tkinter автоматически обрабатывает события, когда запускается в интерактивном режиме, но вам нужно явно запустить событие l oop, если он не запущен в интерактивном режиме. Ваш код выполняется, но поскольку вы никогда не говорите ему начать прослушивание событий, которые он завершает в конце файла, как и любой другой сценарий python.

Вы должны добавить window.mainloop() в качестве последней строки в твой файл

...