php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 702|回复: 0

【Python Tkinter组件】——做一个简单常规的登录页面

[复制链接]

2871

主题

2881

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7283
贡献
0
注册时间
2021-4-14
最后登录
2024-9-19
在线时间
715 小时
QQ
发表于 2022-1-19 12:58:24 | 显示全部楼层 |阅读模式
做一个非常简单的登录页面,附加练习文件,都打包好了,免费拿走,里面有源文件、图片,而且我也把打包好了的文件也放到里面了,供大家学习
image.png
练习素材:

提取码:2rn1 练习素材 点击直接下载

导入模块
[mw_shl_code=applescript,true]import tkinter
from tkinter import *
import tkinter as tk
from tkinter import messagebox[/mw_shl_code]
添加标题,固定窗口大小及位置,附加程序的图标,图标进行选用ico格式的图标,可加可不加

[mw_shl_code=applescript,true]root.title('贱工坊-登录')  # 程序的标题名称
root.geometry("440x290+512+288")  # 窗口的大小及页面的显示位置
root.resizable(False, False)  # 固定页面不可放大缩小
root.iconbitmap("picture.ico")  # 程序的图标[/mw_shl_code]
创建一个画布,然后将我们的程序背景图加载上去
[mw_shl_code=applescript,true]canvas = tkinter.Canvas(root, bg="white", height=400, width=700, borderwidth=-3)  # 创建画布
canvas.pack(side='top')  # 放置画布(为上端)
image_file = tkinter.PhotoImage(file="./background.png")  # 加载图片文件
canvas.create_image(0, 0, anchor='nw', image=image_file)  # 将图片置于画布上[/mw_shl_code]
这个是输入框,用来输入用户及密码,show可以将密码改为*,更好的保护隐私
[mw_shl_code=applescript,true]# 配置账户名
var_usr_name = tkinter.StringVar()
tkinter.Entry(root, width=16,borderwidth=0,textvariable=var_usr_name,font=('黑体', 16)).place(x=144,y=140)

# 配置密码
var_usr_pwd = tkinter.StringVar()
tkinter.Entry(root, width=16, borderwidth=0,show='*', textvariable=var_usr_pwd, font=('黑体', 16)).place(x=144, y=184)[/mw_shl_code]
如果账号或密码有一个错误,则会提示有误
[mw_shl_code=applescript,true]tkinter.Label(root, text='错误:账号或密码有误请重试!', bg="white", font=('宋体', 9), fg='red', width=60, borderwidth=2).place(
            x=30, y=220)[/mw_shl_code]
user_info是固定的账号密码,用来检测,如果账号和密码都对,则执行登录成功提示,错误则提示有误,密码可以该,想添加文件读取密码的也可以,之不过要想好怎么给密码文件加密然后进行读取
[mw_shl_code=applescript,true]usrs_info = ["张三","123456"]   # 账号与密码
if usrs_info[0] == var_usr_name.get():   # 检测账号是否正确
    if usrs_info[1] == var_usr_pwd.get():   # 检测密码是否正确
        tkinter.messagebox.showinfo(title='登录', message='登录成功,欢迎使用!\n等待跳转!!!')  # 提示登录成功               
    else:
        Tips()
else:
    Tips()[/mw_shl_code]
我们来运行一下:

image.png
可以看到,账号输入错误会有提示

image.png
输入正确则会提示登录成功

image.png
完整代码:

[mw_shl_code=applescript,true]import tkinter
from tkinter import *
import tkinter as tk
from tkinter import messagebox

def main():
    root = tk.Tk()
    root.title('贱工坊-登录')  # 程序的标题名称
    root.geometry("440x290+512+288")  # 窗口的大小及页面的显示位置
    root.resizable(False, False)  # 固定页面不可放大缩小
    root.iconbitmap("picture.ico")  # 程序的图标

    canvas = tkinter.Canvas(root, bg="white", height=400, width=700, borderwidth=-3)  # 创建画布
    canvas.pack(side='top')  # 放置画布(为上端)
    image_file = tkinter.PhotoImage(file="./background.png")  # 加载图片文件
    canvas.create_image(0, 0, anchor='nw', image=image_file)  # 将图片置于画布上

    # 配置账户名
    var_usr_name = tkinter.StringVar()
    tkinter.Entry(root, width=16,borderwidth=0,textvariable=var_usr_name,font=('黑体', 16)).place(x=144,y=140)

    # 配置密码
    var_usr_pwd = tkinter.StringVar()
    tkinter.Entry(root, width=16, borderwidth=0,show='*', textvariable=var_usr_pwd, font=('黑体', 16)).place(x=144, y=184)

    # 错误提示
    def Tips():
        tkinter.Label(root, text='错误:账号或密码有误请重试!', bg="white", font=('宋体', 9), fg='red', width=60, borderwidth=2).place(
            x=30, y=220)

    # 登录
    def usr_login():
        usrs_info = ["张三","123456"]   # 账号与密码
        if usrs_info[0] == var_usr_name.get():   # 检测账号是否正确
            if usrs_info[1] == var_usr_pwd.get():   # 检测密码是否正确
                tkinter.messagebox.showinfo(title='登录', message='登录成功,欢迎使用!\n等待跳转!!!')  # 提示登录成功
            else:
                Tips()
        else:
            Tips()
    # 按钮
    Button(root, text='登录',bg='#ffffff',borderwidth=0.5, relief='ridge',width=32, font=('黑体', 13),command=usr_login).place(x=74,y=240)
    # text 按钮的文字显示
    # relief 边框的装饰     flat、raised、solid、ridge、groove
    # bg 按钮的背景色
    # fg 按钮的前景色
    # width 按钮的宽度   hright 按钮的高度
    # state 按钮的状态 normal、active、disabled  默认为normal
    # font 字体装饰  ("微软雅黑",10)  微软雅黑为字体名称,10为字体大小
    # command 按钮调用的函数
    # place 位置

    root.mainloop() #运行
if __name__ == '__main__':
    main()[/mw_shl_code]



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-9-20 01:11 , Processed in 0.184885 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表