Использование функции get () в виджете записи tkinter - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь создать стандартный идентификатор пользователя / пароль PASS.Когда я использую следующую функцию для проверки правильности введенного пароля и имени, я всегда получаю сообщение «введены неправильные значения».По сути, переменные entry_1 и entry_2 не хранят входной текст, и я хочу найти решение для этого.Может быть, кто-нибудь из вас может предложить решение для этого?

Я пытался присвоить entry_1 и entry_2 переменным, но это не сработало.

from tkinter import *

root = Tk() # creates a window and initializes the interpreter
root.geometry("500x300")

name = Label(root, text = "Name")
password = Label(root, text = "Password")
entry_1 = Entry(root)
entry_2 = Entry(root)



name.grid(row = 0, column = 0, sticky = E) # for name to be at right use sticky = E (E means east)
entry_1.grid(row = 0, column =1)
x = "Taha"
password.grid(row = 1, column = 0)
entry_2.grid(row = 1, column =1)
y = "123"
c = Checkbutton(root, text = "Keep in logged in").grid(columnspan = 2 ) # mergers the two columns


def next():
    if a == entry_1 and b == entry_2:
        print ("Proceed")
    else:
        print("wrong values entered")

def getname():
    return name


Next = Button(root, text = "Next", command=next).grid(row = 3, column = 1)




root.mainloop() # keep runing the code

Я хочу, чтобы программаверните «Продолжить» после ввода правильных значений.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

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

from tkinter import *

from tkinter import messagebox
root = Tk() # creates a window and initializes the interpreter
root.geometry("500x300")

name = Label(root, text = "Name")
password = Label(root, text = "Password")
entry_1 = Entry(root)
entry_2 = Entry(root)



name.grid(row = 0, column = 0, sticky = E) # for name to be at right use sticky = E (E means east)
entry_1.grid(row = 0, column =1)
x = "Taha"
password.grid(row = 1, column = 0)
entry_2.grid(row = 1, column =1)
y = "123"
c = Checkbutton(root, text = "Keep in logged in").grid(columnspan = 2 ) # mergers the two columns


def next():

    a = entry_1.get()
    b = entry_2.get()

    if a == "Taha" and b =="123":
        messagebox.showinfo("Login", "successfuly logged in ")
        root.destroy()
        print ("Proceed")
    else:
        messagebox.showerror("Error", "wrong values entered")
        print("wrong values entered")
        root.destroy()



Next = Button(root, text = "Next", command=next).grid(row = 3, column = 1)




root.mainloop() # keep runing the code
0 голосов
/ 28 января 2019

в вашем коде вы нигде не проверяете пользовательский ввод.Вы должны использовать get (), чтобы вернуть пользовательский ввод.Я изменил ваш код соответственно.Теперь, если вы введете Taha в качестве имени пользователя и 123 в качестве пароля, вы получите сообщение «Продолжить».

from tkinter import *

root = Tk()  # creates a window and initializes the interpreter
root.geometry("500x300")

name = Label(root, text="Name")
password = Label(root, text="Password")
entry_1 = Entry(root)
entry_2 = Entry(root)

name.grid(row=0, column=0, sticky=E)  # for name to be at right use sticky = E (E means east)
entry_1.grid(row=0, column=1)
x = "Taha"
password.grid(row=1, column=0)
entry_2.grid(row=1, column=1)
y = "123"
c = Checkbutton(root, text="Keep in logged in").grid(columnspan=2)  # mergers the two columns


def next_window():
    user_name = entry_1.get()
    user_pass = entry_2.get()
    if x == user_name and y == user_pass:
        print("Proceed")
    else:
        print("wrong values entered")


def get_name():
    return name


Next = Button(root, text="Next", command=next_window).grid(row=3, column=1)

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