我正在编写一个程序,该程序使用文件浏览器打开文件并将其作为路径存储在变量中。我想隐藏根窗口,直到选择了文件路径。但是,在我调用root.withdraw()方法之后
我尝试在文件路径方法之后调用root.deiconify(),还尝试使用Toplevel方法调用root.iconify(),但是似乎窗口已从屏幕和任务栏完全消失。
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")
没有显示错误,根窗口只是消失了,无法重新调用。
答案 0 :(得分:0)
这两个在一起:
root.update()
root.deiconify()
是在withdraw
调用后重新获得root权限的正确方法。您可能会遇到一个问题,您的程序没有主循环-将一些按钮绑定到root.destroy并在最后调用root.mainloop()。