Я хочу создать окно входа в систему с помощью tkinter - PullRequest
0 голосов
/ 02 августа 2020

можете ли вы сравнить текст поля ввода с желаемым именем пользователя и паролем и вставить его в операторы if-else, чтобы выполнять различные функции при нажатии кнопки? Я не могу сделать это с помощью IDK функции .get (), почему она не работает или что-то не так с моим кодом.

from tkinter import*
root =Tk()
header=Label(root ,text='Welcome to pokedex')
header.pack()
usernameLabel=Label(root,text="Username")
usernameLabel.pack()
a=""
b=""
usernameEntry=Entry(root,width=50)
usernameEntry.pack()
def usernameentry():
  a=usernameEntry.get()
b_1=Button(root,text="_/",command=usernameentry)
b_1.pack()
passwordLabel=Label(root,text="Password")
passwordLabel.pack()
passwordEntry=Entry(root,width=50)
passwordEntry.pack()
def passwordentry():
    b=passwordEntry.get()
b_2=Button(root,text="_/",command=passwordentry)
b_2.pack()
    
def correctpass():
    correctpassLabel=Label(root,text="Welcome to pokedex")
    correctpassLabel.pack()
def wrongpass():
    wrongpassLabel=Label(root,text="Sorry wrong username or password")
    wrongpassLabel.pack()
if a=="Malhar"and b=="123" :
    loginButton=Button(root,text="Login",command=correctpass)
    loginButton.pack()
else:
    loginButton=Button(root,text="Login",command=wrongpass)
    loginButton.pack()
    
root.mainloop()

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Это вам помогает, поймите лучше? Я импортировал messagebox из tkinter, который помогает вам, показывает окно сообщения, для ошибок и всего остального.

from tkinter import *
from tkinter import messagebox


root = Tk()

def login():
    if usernameEntry.get() == "Malhar" and passwordEntry.get() == "123":
        messagebox.showinfo('Successfull','Login successfull')
    else:
        messagebox.showerror('Invalid','Invalid username or password')

header = Label(root, text='Welcome to pokedex')
header.pack()

usernameLabel = Label(root, text="Username")
usernameLabel.pack()

usernameEntry = Entry(root, width=50)
usernameEntry.pack()

passwordLabel = Label(root, text="Password")
passwordLabel.pack()

passwordEntry = Entry(root, width=50)
passwordEntry.pack()


b_2 = Button(root, text="Login",command=login)
b_2.pack(pady=10)


root.mainloop()

Кроме того, я также отформатировал ваш код в соответствии с pep8: D. Сообщите мне, если возникнут сомнения

Ура

0 голосов
/ 02 августа 2020

Такое количество функций вам не нужно. достаточно только одного.
вот код, который вы можете использовать. учтите, что я изменил переменные. user равно a и pass_ равно b для вашего кода:

from tkinter import *
root = Tk()
header = Label(root ,text='Welcome to pokedex')
header.pack()
usernameLabel = Label(root,text="Username")
usernameLabel.pack()
usernameEntry = Entry(root,width=50)
usernameEntry.pack()
passwordLabel = Label(root,text="Password")
passwordLabel.pack()
passwordEntry = Entry(root,width=50)
passwordEntry.pack()

def login():
    user = usernameEntry.get()
    pass_ = passwordEntry.get()
    if user == 'Mahlar' and pass_ == '123':
        passLabel=Label(root,text="Welcome to pokedex")
    else:
        passLabel=Label(root,text="Sorry wrong username or password")
    passLabel.pack()

loginButton=Button(root,text="Login",command=login)
loginButton.pack()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...