Загрузка...

Как сохранить текст в библиотеке tkinter, виджет Entry? вместо admin должен быть текст из Entry

Тема в разделе Python создана пользователем Humboy13 8 янв 2020. 414 просмотров

  1. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Код

    import tkinter as tk
    from tkinter import *
    from tkinter import messagebox

    root = Tk()
    root.geometry('400x88')
    root.title('Login menu')

    def lgandps():
    root.deiconify()
    top1.withdraw()

    def exit():
    root.deiconify()
    top.withdraw()
    login.delete('0', END)
    password.delete('0', END)
    #root.quit()


    def create(): # create new login and password
    global create_check
    global top1
    global create_button
    global create_login_ent
    global create_password_ent
    global create_check_pass
    top1 = Toplevel(root)
    top1.geometry('400x300')
    top1.title('Welcome in create system')
    create_login_ent = Entry(top1, width = 29 ).grid(row = 0, column = 1) # enty login
    create_password_ent = Entry(top1, width = 19, show="*" ).grid(row = 1, column = 1) # entry pass
    create_label = tk.Label(top1, text = 'Enter login: ').grid(row =0, column =0)# label enter login
    create_password = tk.Label(top1, text = 'Enter password: ').grid(row=1, column =0)# label enter pass
    create_button = tk.Button(top1, text = 'Create', command = lgandps).grid(row = 2, column = 1) # login and password
    root.withdraw()
    top1.mainloop()


    def clicked():
    global top
    global my_button
    global my_label
    if login.get() == 'admin' and password.get() == 'admin':
    top = Toplevel(root)
    top.geometry('400x300')
    top.title('Welcome in second level')
    exit_button = tk.Button(top, text = 'Exit program', command = exit).grid(row = 3, column = 1) # Quit from TopLevel

    root.withdraw() # скрыть окно
    top.mainloop()
    else:
    messagebox.showerror('Not available','You enter not available login or password')


    lbl_login = Label(root, text = 'Please enter your login here',)
    lbl_pass = Label(root, text = 'Please enter your password here')
    login = Entry(root, width = 29)
    password = Entry(root, width = 19, show="*")
    Button = Button(root, text ='Verify',command = clicked)
    leave = tk.Button(root, text ='Exit' , command = root.quit)
    my_button = tk.Button(root, text= 'Create', command = create)

    my_button.grid(row =3, column = 0) # Create Login with password
    lbl_login.grid(row = 0, column = 0)
    lbl_pass.grid(row = 1, column = 0)
    login.grid(row = 0, column = 1)
    password.grid(row = 1, column = 1)
    Button.grid(row = 3, column = 0, columnspan = 2, padx = 30)
    leave.grid(row=3,column = 2)

    root.mainloop()

     
  2. fhiuhui
    fhiuhui 8 янв 2020 13 2 фев 2018
    напиши подробнее. что ты хочешь. сравнить созданные переменные с даными из полей с ними же? или он должен сравнивать с существующем паролем? где этот пароль?
     
  3. oriole
    oriole 8 янв 2020 был(а) давно
  4. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Ну смотри, я хочу в функции create написать логин и пароль, чтобы его запомнило, и сравнить login, password с тем что мы создали create_login_ent, create_password_ent, и если они совпадают то пропустить в следующее окно
     
  5. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
  6. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Там нету того что мне надо, а если есть, то покажи
     
  7. oriole
    oriole 8 янв 2020 был(а) давно
    get(): возвращает введенный в текстовое поле текст
     
  8. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Если бы все так просто было, я бы сюда не пришел
     
  9. oriole
    oriole 8 янв 2020 был(а) давно
    так где у тебя ошибка ?
     
  10. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Ну мне нужно сохранить запись с Entry, чтобы в дальнейшем запуске программы я вписывал логин и пароль, который был записан ранее в функции create
    --- Сообщение объединено с предыдущим 8 янв 2020
    Можешь скопировать код, и потестить у себя, что-то удалить, что-то добавить, но чтобы оно сохраняло
     
  11. oriole
    oriole 8 янв 2020 был(а) давно
    сделай запись у файл
     
  12. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Конкретнее
     
  13. oriole
    oriole 8 янв 2020 был(а) давно
    записывай в файл типа
    логин:пароль,
    логин:пароль,
    и т.д
    а потом проверяй в программе есть ли такая пара в файле
     
  14. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Не хочу показаться тупым, но в какой файл? наведи пример, или еще конкретней напиши
     
  15. oriole
    oriole 8 янв 2020 был(а) давно
    Код
    import tkinter as tk
    from tkinter import *
    from tkinter import messagebox

    root = Tk()
    root.geometry('400x88')
    root.title('Login menu')


    def lgandps():
    root.deiconify()
    top1.withdraw()


    def exit():
    root.deiconify()
    top.withdraw()
    login.delete('0', END)
    password.delete('0', END)
    # root.quit()


    def create(): # create new login and password
    with open('log_pass.txt', 'a') as f:
    f.write(login.get()+':'+password.get()+'\n')


    def clicked():
    global top
    global my_button
    global my_label
    log_pass = login.get()+':'+password.get()
    with open('log_pass.txt' , 'r') as f:
    lines = f.readlines()
    for line in lines:
    if line.strip() == log_pass:
    top = Toplevel(root)
    top.geometry('400x300')
    top.title('Welcome in second level')
    exit_button = tk.Button(top, text='Exit program', command=exit).grid(row=3, column=1) # Quit from TopLevel
    root.withdraw() # скрыть окно
    top.mainloop()
    break
    else:
    messagebox.showerror('Not available', 'You enter not available login or password')


    lbl_login = Label(root, text='Please enter your login here', )
    lbl_pass = Label(root, text='Please enter your password here')
    login = Entry(root, width=29)
    password = Entry(root, width=19, show="*")
    Button = Button(root, text='Verify', command=clicked)
    leave = tk.Button(root, text='Exit', command=root.quit)
    my_button = tk.Button(root, text='Create', command=create)

    my_button.grid(row=3, column=0) # Create Login with password
    lbl_login.grid(row=0, column=0)
    lbl_pass.grid(row=1, column=0)
    login.grid(row=0, column=1)
    password.grid(row=1, column=1)
    Button.grid(row=3, column=0, columnspan=2, padx=30)
    leave.grid(row=3, column=2)

    root.mainloop()
     
  16. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Этот код не работает, или же работает не правильно
     
  17. oriole
    oriole 8 янв 2020 был(а) давно
    почему же ?
     
  18. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Я его открываю, но ничего не происходит, не открывается окно tkinter
     
  19. oriole
    oriole 8 янв 2020 был(а) давно
    ты его не полностю скопировал
    --- Сообщение объединено с предыдущим 8 янв 2020
    а создaй файл log_pass.txt
     
  20. Humboy13
    Humboy13 Автор темы 8 янв 2020 41 8 янв 2020
    Так, хорошо, ошибся, но кнопка create ничего не делает
     
Загрузка...
Top