在没有input()python 3

时间:2019-02-13 14:57:32

标签: python-3.x tkinter

对于我的程序,我将tkinter用于GUI。在程序启动之前,我要输入密码。我使用了input()函数。在jupyter笔记本中运行代码时,一切正常。因此,我使用pyinstaller创建了可执行文件,但是双击该文件将无法启动并要求输入。由于我经常使用pyinstaller,所以我认为创建exe文件不会失败,所以我的猜测是问题出在input()函数之内。有没有其他方法可以要求用户输入?

我尝试通过Toplevel创建带有条目窗口小部件的窗口,但我不确定如何实现它,因为我想在输入密码后启动程序。

我的相关代码:

if __name__=='__main__':
    root = tkinter.Tk()
    asd = input("Enter the password:")
    if asd == str(12345):
        app = GUI(master=root)
        app.master.title("Programm Links")
        app.master.minsize(600,400)
        root.config(menu=app.menubar)
        app.center(root)
        app.mainloop()
    else:
        root.destroy()

1 个答案:

答案 0 :(得分:1)

因此,借助对我的问题的评论,我得到了答案:

import tkinter
from tkinter import messagebox
from tkinter import simpledialog

if __name__=='__main__':
    root = tkinter.Tk()
    root.withdraw()
    asd = tkinter.simpledialog.askstring("Password","Enter the password:")
    if asd == str(12345):
        app = GUI(master=root)
        app.master.title("Programm Links")
        app.master.minsize(600,400)
        root.config(menu=app.menubar)
        app.center(root)
        app.mainloop()
    else:
        messagebox.showwarning("WRONG PASSWORD","You entered a wrong password")
        root.destroy()

这将创建一个对话框,要求用户输入。 root.withdraw()隐藏对话框运行所需的root = tkinter.Tk()创建的根窗口框架。