用户登录系统,包括用户名和密码

2024-05-01 22:11:43 发布

您现在位置:Python中文网/ 问答频道 /正文

如何检查登录和密码的条目,如果它们是正确的,将打开新的选项卡。如果输入不正确,将显示错误消息。用户还应该能够注册一个帐户

 from tkinter import *
import sqlite3
import tkinter
import time
root = Tk()

root.title("Sale System")
root.geometry("500x500")
root.configure(background='grey')

Label(root, text="Checkout System", background='grey').grid(row=0, column=1)
Label(root, text="Time:", background='grey').grid(row=1, column=1)

def clock():
    t=time.strftime('%I:%M:%S',time.localtime())
    if t!='':
        labeltime.config(text=t)
    root.after(100,clock)
labeltime=Label(root, text="Current System Time", background='grey')
labeltime.grid(row=1, column=1)
time1 = clock()

def new_winF(): #Opens registration confirmation window
    newwin = Toplevel(root)
    display = Label(newwin, text="Your account has been created. Please log in with your new details. This window may be closed.")
    display.pack()    


Label(root, text="Username:", background='grey').grid(row=3, column=0, sticky=W)
Label(root, text="Password:", background='grey').grid(row=4, column=0, sticky=W)

e1 = Entry(root)
e1.grid(row=3, column=1)


if e1 == 'yes':
    command =new_winF


e2 = Entry(root)
e2.grid(row=4, column=1)

LoginButton = Button(root, text="Login", width=10)
LoginButton.grid(row=5, column=1)

RegisterButton = Button(root, text ="Register", command =new_winF, width=10)
RegisterButton.grid(row=6, column=1)


root.mainloop()

Tags: textimportnewtimecolumnrootsystemlabel
2条回答

有太多的变化无法描述。在

顺便说一句:我使用Frame对小部件进行分组,然后我可以显示一个框架(pack()/grid()),并隐藏另一个框架(pack_forget()/grid_forget())。这个方法还有更多有用的例子。在

import tkinter as tk
import time

#  - functions  -

def clock():
    txt = time.strftime('%I:%M:%S', time.localtime())
    label_time.config(text=txt)
    root.after(1000, clock)

def on_register(): #Opens registration confirmation window
    newwin = tk.Toplevel(root)
    display = tk.Label(newwin, text="\nYour account has been created.\nPlease log in with your new details.\n\nThis window may be closed.")
    display.pack()    
    tk.Button(newwin, text='Close', command=newwin.destroy).pack()

def on_login(): #Opens registration confirmation window
    newwin = tk.Toplevel(root)
    if e1.get() == 'admin' and e2.get() == '12345':
        display = tk.Label(newwin, text="\nYour are logged in.\n\nThis window may be closed.")
        display.pack()    

        main_page.pack_forget() # hide it
        other_page.pack() # show it
    else:
        display = tk.Label(newwin, text="\nWrong login or password.\n\nThis window may be closed.")
        display.pack()    
    tk.Button(newwin, text='Close', command=newwin.destroy).pack()

def create_main_page():
    global label_time
    global e1
    global e2

    frame = tk.Frame(root)
    #frame.pack() # don't show it

    tk.Label(frame, text="Checkout System", background='grey').grid(row=0, column=1)
    tk.Label(frame, text="Time:", background='grey').grid(row=1, column=1)

    label_time = tk.Label(frame, text="Current System Time", background='grey')
    label_time.grid(row=1, column=1)

    clock()

    tk.Label(frame, text="Username:", background='grey').grid(row=3, column=0, sticky='w')
    tk.Label(frame, text="Password:", background='grey').grid(row=4, column=0, sticky='w')

    e1 = tk.Entry(frame)
    e1.grid(row=3, column=1)

    e2 = tk.Entry(frame)
    e2.grid(row=4, column=1)

    login_button = tk.Button(frame, text="Login", width=10, command=on_login)
    login_button.grid(row=5, column=1)

    register_button = tk.Button(frame, text="Register", width=10, command=on_register)
    register_button.grid(row=6, column=1)

    return frame

def create_other_page():
    frame = tk.Frame(root)
    #frame.pack() # don't show it

    tk.Label(frame, text="You are on other page", background='grey').grid(row=0, column=1)

    return frame

#    main  -

root = tk.Tk()

root.title("Sale System")
root.geometry("500x500")
root.configure(background='grey')

main_page = create_main_page()
main_page.pack() # show it

other_page = create_other_page()
#other_page.pack() # don't show it yet

root.mainloop()

创建一个函数并将其绑定到login按钮以检查您的输入输入。这里您的用户名输入应该是yes密码no如果匹配,则窗口将弹出,如果不匹配,mesagebox将弹出它以警告用户。在

from tkinter import *
import sqlite3
from tkinter import messagebox
import tkinter
import time


root = Tk()

root.title("Sale System")
root.geometry("500x500")
root.configure(background='grey')

Label(root, text="Checkout System", background='grey').grid(row=0, column=1)
Label(root, text="Time:", background='grey').grid(row=1, column=1)

def clock():
    t=time.strftime('%I:%M:%S',time.localtime())
    if t!='':
        labeltime.config(text=t)
    root.after(100,clock)

labeltime=Label(root, text="Current System Time", background='grey')
labeltime.grid(row=1, column=1)
time1 = clock()



def new_winF(): #Opens registration confirmation window
    newwin = Toplevel(root)
    display = Label(newwin, text="Your account has been created. Please log in with your new details. This window may be closed.")
    display.pack()



 Label(root, text="Username:", background='grey').grid(row=3,column=0,sticky=W)
Label(root, text="Password:", background='grey').grid(row=4, column=0, 
sticky=W)



def login_fun():
    if e1.get() == "yes" and e2.get() == "no":
       new_winF()
    else:
        messagebox.showerror("error","try agian boy")




e1 = Entry(root)
e1.grid(row=3, column=1)

e2 = Entry(root)
e2.grid(row=4, column=1)

LoginButton = Button(root, text="Login", width=10, command=login_fun)
LoginButton.grid(row=5, column=1)

RegisterButton = Button(root, text ="Register", command =new_winF, width=10)
RegisterButton.grid(row=6, column=1)


root.mainloop()

相关问题 更多 >