首页 > 解决方案 > 我想使用 tkinter 创建一个登录窗口

问题描述

您可以将输入字段文本与您想要的用户名和密码进行比较,然后将其放入 if-else 语句中以在单击按钮时执行不同的功能吗?我无法使用 .get() 函数 IDK 执行此操作,为什么它不起作用或我的代码有问题。

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()

标签: pythontkinter

解决方案


这对您有帮助吗,更好地理解?我已经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 格式化了您的代码。让我知道,如果有任何疑问

干杯


推荐阅读