首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图形化界面的开发(GUI)_Tkinter库的使用-综合案例-登录界面

图形化界面的开发(GUI)_Tkinter库的使用-综合案例-登录界面

原创
作者头像
laity
修改2025-02-28 09:49:35
修改2025-02-28 09:49:35
35310
代码可运行
举报
文章被收录于专栏:Tkinter库的使用Tkinter库的使用
运行总次数:0
代码可运行

前言

学习完了python第三方库tkinter一些基本控件的使用后,接着我们来做一些综合案例来熟悉下这些控件的使用,今天我们要做的一个综合案例是登录界面的设计。

导航

pillow库的使用篇

图片脚本篇

Tkiner库的使用篇

源码

代码语言:python
代码运行次数:0
运行
复制
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk

# 创建主窗口
window = tk.Tk()
window.title("登录界面")
window.geometry("800x600")

# 用于存储注册用户信息
users = {}
# 定义登录函数
def login():
    username = username_entry.get()
    password = password_entry.get()
    if username in users and users[username] == password:
        messagebox.showinfo("登录成功", "欢迎,你已成功登录!")
    else:
        messagebox.showerror("登录失败", "用户名或密码错误,请重试。")

# 定义注册函数
def register():
    # 创建注册窗口
    register_window = tk.Toplevel(window)
    register_window.title("注册界面")
    register_window.geometry("400x300")

    # 注册窗口的标题
    register_title_label = tk.Label(register_window, text="注册新用户", font=("font/jian.ttf", 20))
    register_title_label.place(x=200, y=50, anchor="center")

    # 注册用户名输入框
    register_username_label = tk.Label(register_window, text="用户名:", font=("font/jian.ttf", 16))
    register_username_label.place(x=50, y=120)
    register_username_entry = tk.Entry(register_window, width=20, font=("font/jian.ttf", 16))
    register_username_entry.place(x=150, y=120)

    # 注册密码输入框
    register_password_label = tk.Label(register_window, text="密码:", font=("font/jian.ttf", 16))
    register_password_label.place(x=50, y=170)
    register_password_entry = tk.Entry(register_window, width=20, show="*", font=("font/jian.ttf", 16))
    register_password_entry.place(x=150, y=170)

    # 定义注册按钮及其逻辑
    def do_register():
        new_username = register_username_entry.get()
        new_password = register_password_entry.get()
        if new_username and new_password:
            if new_username in users:
                messagebox.showerror("注册失败", "该用户名已存在,请选择其他用户名。")
            else:
                users[new_username] = new_password
                messagebox.showinfo("注册成功", "你已成功注册,请使用新账号登录。")
                register_window.destroy()
        else:
            messagebox.showerror("注册失败", "用户名和密码不能为空,请重新输入。")

    register_button = tk.Button(register_window, text="注册", font=("font/jian.ttf", 16), command=do_register)
    register_button.place(x=170, y=220)

# 导入图片并设置为背景
image_file = Image.open('images/1.jpg')
bg = image_file.resize((800, 600))
# 设置透明度
bg = bg.convert("RGBA")
bg.putalpha(178)
bg = ImageTk.PhotoImage(bg)
label = tk.Label(window, image=bg)
label.place(x=0, y=0, relwidth=1, relheight=1)

# 登录界面标题
title_label = tk.Label(window, text="欢迎登录", font=("font/jian.ttf", 30))
title_label.place(x=400, y=100, anchor="center")

# 用户名输入框
username_label = tk.Label(window, text="用户名:", font=("font/jian.ttf", 16))
username_label.place(x=200, y=200)
username_entry = tk.Entry(window, width=20, font=("font/jian.ttf", 16))
username_entry.place(x=300, y=200)

# 密码输入框
password_label = tk.Label(window, text="密码:", font=("font/jian.ttf", 16))
password_label.place(x=200, y=250)
password_entry = tk.Entry(window, width=20, show="*", font=("font/jian.ttf", 16))
password_entry.place(x=300, y=250)

# 登录按钮
login_button = tk.Button(window, text="登录", font=("font/jian.ttf", 16), command=login)
login_button.place(x=360, y=300)

# 注册按钮
register_link = tk.Button(window, text="注册", font=("font/jian.ttf", 16), command=register)
register_link.place(x=430, y=300)

window.mainloop()

效果图

共勉

你坚持不了的事情,总有人能坚持。

博客

  • 本人是一个渗透爱好者,不时会在微信公众号(laity的渗透测试之路)更新一些实战渗透的实战案例,感兴趣的同学可以关注一下,大家一起进步。
  • 之前在公众号发布了一个kali破解WiFi的文章,感兴趣的同学可以去看一下,在b站(up主:laity1717)也发布了相应的教学视频

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 导航
    • pillow库的使用篇
    • 图片脚本篇
    • Tkiner库的使用篇
  • 源码
  • 效果图
  • 共勉
  • 博客
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档