200行代码帮你实现界面化登录注册功能

本文介绍如何使用Python的库创建一个具有登录和注册功能的界面化应用。通过设置根窗口、添加图片和文字信息、创建输入框、定义变量、创建按钮、弹窗和信息提示窗口,实现简单的用户交互。代码已上传至GitHub,欢迎查阅。
摘要由CSDN通过智能技术生成

今天我们将利用 tkinter 库制作以下的登录界面, 可以实现登录,并可以实现注册和登录,这里为了简单起见,使用 json文件保存读取用户账号和密码

代码已经上传到了 GitHub,欢迎 ⭐️,另外使用PyQt制作了一个类似的项目,见CSDN

在这里插入图片描述

创建根窗口

首先,我们需要建立一个根窗口,控制其不能够缩放并设置其标题,调用mainloop方法来控制

from tkinter import *
window = Tk()  # 建立根目录
window.title("Welcome")  # 设置标题
window.geometry("500x400")  # 设置窗口的大小
window.resizable(width=False, height=False)  # 设置窗口不能够缩放
window.mainloop()

到此,我们运行一下,便可以得到如下的效果

添加图片

然后我们来设置一下首页中图片,利用PILCanvas中的create_image方法加上控制一下位置,我们便可以实现,代码如下:

from PIL import Image, ImageTk
# 首页的图片
image = Image.open("./welcome.jpg")  # 打开图片,保存在image对象中
img = ImageTk.PhotoImage(image)  # 转化成tkinter中的图片对象
c = Canvas(window, width=500, height=200)  # 创建画布对象
c.create_image(250, 0, image=img, anchor=N)  # 添加图片
c.pack()  # 将图片打包到首页上

就这样就,我们实现了如下的效果

在这里插入图片描述

添加文字信息

接下来我们就需要在上面添加文字信息,在tkinter中提供了一个类Label可以为我们做这件事,常见用法如下

Label(master[, text, font,textvariabel, wraplength, padx, pady, ...])
  • master是要显示的窗口
  • text为要显示的文字
  • font为要显示的文字的字体,可以控制字体的大小
  • textvariable文字变量,以文字变量的值显示
  • wraplength换行的长度
  • padx, pady 内容区与边界的距离

知道了这些之后,我们便可以在之前的窗口上添加这些文字了,然后使用place将这些控件摆放在对应的位置

username_label = Label(window, font='Monaco 12', text="username:")
passwd_label = Label(window, font='Monaco 12', text='password:')

username_label.place(x=40, y=220)  # 摆放位置
passwd_label.place(x=40, y=260)

welcome = Label(window, font="monaco 12", text='Welcome here to learn python !')
welcome.place(x=250, y=320, anchor=N)

创建输入框

那么输入框如何解决呢,在tkinter中提供了Entry控件可以获取用户的输入,用法见下:

Entry(master, [textvariable, width, show, font, padx, pady, ...])
  • master是要显示的窗口
  • show 为输入显示的字符,默认为None,即显示原字符
  • font为要显示的文字的字体,可以控制字体的大小
  • textvariable文字变量,输入的值可以保存在该变量之中
  • width 输入框的宽度
  • padx, pady 内容区与边界的距离

定义相关变量

tkinter中有定义好的变量类型对象 – BooleanVar, DoubleVar, IntVar, StringVar 分别可以保存布尔类型,浮点数类型,整数类型以及字符串类型的变量,使用的时候,我们可以使用其中的set方法来赋值,使用get方法来获取其中的值,使用这些变量通常会在交互中需要改变某个变量的值,比如输入,选择等

知道了以上这些之后,我们便可以用来实现处理用户输入了,代码如下:

# 输入框
username = StringVar()
passwd = StringVar()
# 以下将用户输入的内容赋值给我们的变量
username_entry = Entry(window, font='Monaco 10', width=20, textvariable=username)
passwd_entry = Entry(window, font='Monaco 10', width=20, textvariable=passwd, show='*')  
username_entry.place
  • 29
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值