python_tkinter实现图形化登录注册功能

一、需求描述

  1. 有登录和注册的界面,点击注册按钮跳转到注册页面
  2. 登录窗口有两个按钮,登录和注册。有两个框:用户名和密码
  3. 注册窗口有一个按钮,确定注册。有三个框:用户名、密码、确认密码。要求密码和确认密码不一致无法完成注册,用户名存在也无法注册。注册成功后将信息存储到usrs_info.pickle文件内。

先看图吧

image-20211207104929753

二、实现

(1)导库

import tkinter as tk
from tkinter import messagebox 
import pickle

(2)初始化主窗口(登录窗口)

创建一个窗口,并在里面添加控件

window = tk.Tk()
window.title('Welcome to sky Python')
window.geometry('450x300')

# welcome image 图片
canvas = tk.Canvas(window, height=200, width=500)
image_file = tk.PhotoImage(file='welcome.gif')
image = canvas.create_image(0, 0, anchor='nw', image=image_file)
canvas.pack(side='top')

# user information 提示文字
tk.Label(window, text='User name: ').place(x=50, y=150)
tk.Label(window, text='Password: ').place(x=50, y=190)

var_usr_name = tk.StringVar() #获取输入
var_usr_name.set('admin')  #默认显示admin
entry_usr_name = tk.Entry(window, textvariable=var_usr_name) #设置输入框,并将用户输入的内容赋值给var_usr_name
entry_usr_name.place(x=160, y=150)  #设置位置
var_usr_pwd = tk.StringVar()
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
entry_usr_pwd.place(x=160, y=190)

# login and sign up button
btn_login = tk.Button(window, text='Login', command=usr_login) #这里command是方法
btn_login.place(x=170, y=230)
btn_sign_up = tk.Button(window, text='Sign up', command=usr_sign_up)
btn_sign_up.place(x=270, y=230)

window.mainloop()

(3)登录功能实现

def usr_login():
    usr_name = var_usr_name.get()
    usr_pwd = var_usr_pwd.get()
    try:
        with open('usrs_info.pickle', 'rb'
  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python Tkinter是一个用于创建图形用户界面(GUI)的Python库。它可以用来创建各种类型的应用程序,包括登录注册界面。在Tkinter中,我们可以使用各种小部件(widgets)来创建GUI,例如按钮(buttons)、标签(labels)、文本框(text boxes)等等。对于登录注册界面,我们可以使用文本框来输入用户名和密码,使用按钮来提交登录或注册请求。同时,我们还可以使用标签来显示错误信息或成功信息。总之,Python Tkinter是一个非常强大的工具,可以帮助我们轻松地创建各种类型的GUI应用程序。 ### 回答2: Python Tkinter是一个用于创建GUI的Python标准库。它提供了一个简单和易于使用的框架,可用于使用各种GUI工具包来创建不同类型的Python应用程序。在本文中,我将介绍如何创建一个Python Tkinter登录注册界面。 首先,我们需要安装Python Tkinter库。在Python环境中,可以使用以下命令在终端中安装Tkinter: ```python pip install tk ``` 接下来,我们将创建一个文件名为“login.py”的Python脚本,并按以下方式编写代码: ```python import tkinter as tk root = tk.Tk() root.title("登录界面") # 创建标签框架和标签 frame_user = tk.Frame(root) label_user = tk.Label(frame_user, text="用户名:") entry_user = tk.Entry(frame_user, width=25) frame_pwd = tk.Frame(root) label_pwd = tk.Label(frame_pwd, text="密码:") entry_pwd = tk.Entry(frame_pwd, width=25) frame_user.pack(side="top", pady=10) label_user.pack(side="left") entry_user.pack(side="left") frame_pwd.pack(side="top", pady=10) label_pwd.pack(side="left") entry_pwd.pack(side="left") # 创建按钮 frame_btn = tk.Frame(root) button_register = tk.Button(frame_btn, text="注册") button_login = tk.Button(frame_btn, text="登录") button_register.pack(side="left") button_login.pack(side="left", padx=10) frame_btn.pack(side="top", pady=20) root.mainloop() ``` 代码中,我们首先导入Tkinter库,然后创建一个名为root的Tkinter对象实例,它表示GUI的主窗口。设置窗口的标题为“登录界面”。 然后,我们创建两个标签框架,一个用于用户名和另一个用于密码。在每个框架中,我们创建一个标签和一个输入框,并使用pack()方法将它们打包在一起。 最后,我们在一个按钮框架中创建两个按钮,一个用于注册,另一个用于登录,然后将它们打包在一起。使用mainloop()方法显示GUI窗口并等待用户输入。 接下来,我们需要对登录和注册按钮添加点击事件的处理程序。我们将使用lambda函数在单击按钮时调用这些处理程序。例如,我们在单击登录按钮时可以执行以下操作: ```python def login(): user = entry_user.get() pwd = entry_pwd.get() if user == "admin" and pwd == "123456": print("登录成功") else: print("登录失败") button_login.config(command=lambda: login()) ``` 在此代码段中,我们创建了一个login()函数来处理登录操作。该函数获取用户名和密码输入框的值,然后将其与某些预定义值进行比较。如果匹配,则打印“登录成功”,否则打印“登录失败”。 最后,我们使用config()方法将按钮的command属性设置为lambda函数,该函数将调用login()函数。使用相同的方式来处理注册按钮的事件并执行相应的操作。 至此,我们的Python Tkinter登录注册界面完成。这个小项目可以帮助初学者熟悉Python Tkinter库,并在实际应用中使用它,同时实现了登录和注册的基本功能。 ### 回答3: PythonTkinter库是一个快速简单创建GUI界面的工具,它可以在Windows、OS X和Linux等多个平台上运行。 针对登录注册界面,我们可以采用Tkinter进行界面设计。首先需要导入Tkinter模块,然后定义一个界面窗口。接着,设置窗口标题、窗口大小等参数。在窗口中添加用户名和密码的输入框,以及注册和登录按钮。并且,设置相关按钮的事件响应函数。 对于登录操作,在响应函数中应该对用户输入的用户名和密码进行判断,如果存在该用户名且密码正确,则跳转到对应的主界面,否则应该提示用户重新输入。而针对注册操作,在响应函数中需要对用户输入的用户名和密码进行检查,不允许出现重复用户名。如果检查通过,将该用户名和密码保存,并提示用户注册成功。 在代码实现方面,我们根据上述过程进行编码。示例代码如下: ``` from tkinter import * root = Tk() root.title("登录/注册") # 设置窗口大小和初始位置 width = 400 height = 300 screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() align_top = (screenheight - height) / 2 align_left = (screenwidth - width) / 2 root.geometry('%dx%d+%d+%d' % (width, height, align_left, align_top)) # 定义欢迎标签 welcome = Label(root, text="欢迎使用系统!", font=("宋体", 16)) welcome.pack() # 定义用户名输入框 name_label = Label(root, text="用户名:") name_label.place(x=50, y=70) name_entry = Entry(root, width=30) name_entry.place(x=110, y=70) # 定义密码输入框 pwd_label = Label(root, text="密 码:") pwd_label.place(x=50, y=110) pwd_entry = Entry(root, show="*", width=30) pwd_entry.place(x=110, y=110) # 定义登录操作响应函数 def login(): name = name_entry.get() pwd = pwd_entry.get() if name == "admin" and pwd == "123456": welcome.config(text="登录成功") # TODO 跳转到对应的主界面 else: welcome.config(text="用户名或密码错误") # 定义注册操作响应函数 def register(): name = name_entry.get() pwd = pwd_entry.get() with open("users.txt", "a+") as f: users = f.read().splitlines() if name in users: welcome.config(text="用户名已存在") else: f.write(name + " " + pwd + "\n") welcome.config(text="注册成功") # 定义登录和注册按钮 login_button = Button(root, text="登录", command=login) login_button.place(x=110, y=150) register_button = Button(root, text="注册", command=register) register_button.place(x=210, y=150) root.mainloop() ``` 上述代码实现了一个简单的登录注册界面界面上部分为欢迎标签,中部分为用户名和密码输入框,底部为登录和注册按钮。登录响应函数对用户输入的用户名和密码进行判断,注册响应函数则将用户输入的用户名和密码保存到文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值