代码基于ttkbootstrap
from tkinter import *
import ttkbootstrap as ttk
from tkinter import messagebox
class TextView(ttk.Frame):
def __init__(self,master):
super().__init__(master,padding=30)
self.pack(fill=BOTH,expand=YES)
self.master = master
self.user = ttk.StringVar()
self.passwd = ttk.StringVar()
self.createEntry()
self.createbutton()
self.master.bind("<Return>",self.on_login)
def createEntry(self):
entryFrame = ttk.Frame(master=self,padding=10)
entryFrame.pack(fill=BOTH)
userlable = ttk.Label(
master=entryFrame,
text="用户名"
)
userlable.pack(side=LEFT)
self.userentry = ttk.Entry(
master=entryFrame,
textvariable=self.user,
bootstyle="light"
)
self.userentry.pack(
fill=X,
side=RIGHT,
expand=YES,
padx=(50,50)
)
entryFrame = ttk.Frame(master=self,padding=10)
entryFrame.pack(fill=BOTH)
passlable = ttk.Label(master=entryFrame, text="密码",)
passlable.pack(fill=X,side=LEFT)
self.passentry = ttk.Entry(
master=entryFrame,
textvariable=self.passwd,
bootstyle="light",
show="*"
)
self.passentry.pack(
fill=X,
side=RIGHT,
expand=YES,
padx=(73,50)
)
def createbutton(self):
buttonFrame = ttk.Frame(master=self)
buttonFrame.pack(
fill=BOTH,
padx=(133,60),
pady=(20,0)
)
button = ttk.Button(
master=buttonFrame,
text="登录",
style="success",
command=self.on_login
)
button.pack(fill=X,side=LEFT,expand=YES)
button = ttk.Button(
master=buttonFrame,
text="注册",
style="light"
)
button.pack(fill=X,side=LEFT,expand=YES)
def on_login(self, *args):
username = self.user.get().replace(" ","")
passwd = self.passwd.get().replace(" ","")
if args:
event, *other = args
print(event.keycode)
if not username:
self.userentry.configure(bootstyle="danger")
if not passwd:
self.passentry.configure(bootstyle="danger")
print(username,passwd)
login_state = self._check_userandpasswd(username,passwd)
if login_state:
self.destroy()
else:
messagebox.showinfo(
message="账号或密码错误,请重试 \n",
title="Error",
)
def _check_userandpasswd(self,username,passwd):
"""
检查账号密码是否正确的函数
:param username:
:param passwd:
:return: bool
"""
return False
if __name__ == '__main__':
app = ttk.Window(
title="登录页面Demo -- Powered by Jackma",
minsize=(800,300),
themename="darkly"
)
TextView(app)
app.place_window_center()
app.mainloop()
标签:界面,登录,passwd,demo,self,ttk,master,fill,pack From: https://blog.csdn.net/benetqq/article/details/143186306如果发生PIL报错请安装 pillow==9.5.0