文章背景
本文将tkinter实现页面跳转这篇文章,添加了注册界面,添加新的登录逻辑,以加快读者学习Python GUI的进度。
优化内容
注册界面代码
from Login_Page import *
class SignUpPage(object):
def __init__(self, master=None):
self.root = master
self.root.geometry('%dx%d' % (300, 180))
self.username = StringVar()
self.password = StringVar()
self.createPage()
def createPage(self):
self.page = Frame(self.root)
self.page.pack()
Label(self.page).grid(row=0, stick=W)
Label(self.page, text='账户: ').grid(row=1, stick=W, pady=10)
Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
Label(self.page, text='密码: ').grid(row=2, stick=W, pady=10)
Entry(self.page, textvariable=self.password).grid(row=2, column=1, stick=E)
Button(self.page, text='注册', command=self.SignUpCheck).grid(row=3, stick=W, pady=10)
Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E)
def SignUpCheck(self):
name = self.username.get()
secret = self.password.get()
if name != '' and secret != '':
self.page.destroy()
LoginPage(self.root)
else:
showinfo(title='错误', message='用户名及密码不能为空!')
Tip 本文中注册界面的密码无*掩饰,若需要按登录界面密码输入框,按以下代码进行修改。
Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E)
新登录逻辑添加
本文的登录逻辑是源于基于Python设计一个简单GUI界面实现模拟登录
def loginCheck(self):
name = self.username.get()
usr_pwd = self.password.get()
if name == "user1" and usr_pwd == "888":
login_success = "登录成功"
showinfo(message=login_success)
self.page.destroy()
MainPage(self.root)
elif name == "user1" and usr_pwd != "888":
login_wrong_pwd = "密码错误,请重新输入正确的密码!"
showinfo( message=login_wrong_pwd)
self.password.delete('0', 'end')
self.password.focus_set()
else:
user_no_exist = "用户不存在!"
showinfo( message=user_no_exist)
self.username .delete('0', 'end')
self.username .focus_set()
self.password.delete('0', 'end')
注册按钮逻辑绑定
Button(self.page, text='注册', command=self.Signup).grid(row=3, column=1, stick=E)
登录与注册界面跳转逻辑
登录界面要跳转到注册界面时,需要将原有的登录界面消失,再调用注册界面所在的类,方可出现注册界面,即登录界面成功跳转到注册界面。
def Signup(self):
self.page.destroy()
SignUpPage(self.root)
|