Запрашиваемая для ввода пользователя без input () python 3 - PullRequest
0 голосов
/ 13 февраля 2019

для моей программы я использую tkinter для графического интерфейса.Перед запуском программы я хочу ввести пароль.Я использовал функцию 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 голосов
/ 13 февраля 2019

Итак, с помощью комментариев на мой вопрос я получил ответ:

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 (), которая необходима для запуска диалогового окна.

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