Корневое окно Tkinter исчезло после снятия () - PullRequest
0 голосов
/ 26 июня 2019

Я пишу программу, которая открывает файл с помощью файлового браузера и сохраняет его в виде пути в переменной.Я хочу скрыть корневое окно, пока не будет выбран путь к файлу.Однако после вызова метода root.withdraw ()

я попытался вызвать root.deiconify () после метода пути к файлу, а также root.iconify (). Я также попытался использовать метод Toplevel, однако кажется, чтоокно полностью исчезло с экрана и панели задач.

root = tk.Tk()
root.winfo_toplevel()
root.withdraw()

filePath = filedialog.askopenfilename(initialdir="~/", title="Select file")

root.update()

fileSize = os.path.getsize(filePath)
print("File selected: " + filePath)
print("\nfile is: " + str(fileSize) + " bytes\n")

#.............................................................
root.deiconify()
button1 = (root, text="SHA256", command=SHA256(filePath))
button1.pack()

fileType = input("specify checksum type: " + "(ex. md5, sha1, sha256)" + "\n")

if fileType.lower() == "md5":
    message = MD5(filePath)
    print("MD5:\n" + message + "\n")
elif fileType.lower() == "sha256":
    message = SHA256(filePath)
    print("SHA256:\n" + message + "\n")
elif fileType.lower() == "sha1":
    message = SHA1(filePath)
    print("SHA1:\n" + message + "\n")

elif fileType.lower() not in hashTypes:
    print("Invalid file type \n\n")

Не отображается никаких ошибок, корневое окно просто исчезло и не может быть вызвано на экран.

1 Ответ

0 голосов
/ 26 июня 2019

Эти двое вместе:

root.update()
root.deiconify()

- верный способ вернуть root после вызова withdraw. Вероятно, у вас проблема в том, что в вашей программе нет основного цикла: свяжите какую-нибудь кнопку с root.destroy и в конце вызовите root.mainloop ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...