2017-02-12 3 views
-1

Когда я запускаю этот скрипт, появляются два окна: один для выбора файла и окна Tkinter. Как это изменить, чтобы окно Tkinter открывалось только после того, как файл был выбран? БлагодаряКак предотвратить открытие окна Tkinter перед вызовом?

def main(): 
    my_file = askopenfilename() 
    stage1() 

def stage1(): 
    master = Tk() 
    master.mainloop() 

ответ

2

окно master делает открытым только после закрытия диалогового файла (попробуйте изменить его название, чтобы проверить), то первое окно, которое вы видите, является родительским окном диалога файлов. Действительно, диалоги файлов tkinter - это расширенные окна, поэтому они не могут существовать без родительского окна. Итак, первое окно, которое вы видите, является родительским окном диалогового окна файла.

Родительское окно, однако, может быть скрыт с помощью метода withdraw, а затем восстановлен с deiconify:

from tkinter import Tk 
from tkinter.filedialog import askopenfilename 

def main(): 
    master = Tk() 
    master.withdraw() # hide window 
    my_file = askopenfilename(parent=master) 
    master.deiconify() # show window 
    master.mainloop() 

if __name__ == '__main__': 
    main() 
Смежные вопросы