Python制作登陆界面(2)(中等级)
前言
本人又来教大家制作登陆界面啦!
大家知道弹窗在电脑中无处不在:浏览器界面啊,Python编程界面啊,网络会议室啊等等。
相信你们在使用Python中肯定用过一个庞大的GUI模块:tkinter。
这次我们会用到它来制作弹窗登陆界面。
1、关于tkinter
tkinter是python中最基础,最标准的GUI库。
除了它以外,在python里还有许许多多的GUI库:wx,PyQt5……
而这些都是Python不自带的,必须使用管理员或终端使用pip install(使用Mac的伙伴用sudo apt-get)指令来下载。
(有些Python版本在下载的时候不会自带tkinter,cmd输入pip install tkinter(Mac的用brew install python-tk)即可)
例:
import tkinter
root = tkinter.Tk()
root.title("示例")
root.geometry("200x300")
效果:
tkinter里面不仅有Tk(GUI主界面),title(标题)和geometry(大小),还有Entry(输入框),Label(标签),Frame(框,有些类似于Menu),Menu(菜单),Toplevel(叠加GUI)等。
无论如何,这些功能前面都要加一个tkinter.(也可以是tk.,前提是在导入模块时要输入import tkinter as tk),不然会报错:
2、制作
1、基本框架
导入模块:
from tkinter import * #这里为了简便,一般不建议使用
from tkinter import messagebox
import pickle
基本结构:
Lw = Tk()
Lw.title("测试")
Lw.geometry("500x300")
Label(Lw, text = "登录 ", font = ("幼圆", 26), fg = "white", bg = "green").place(x = 10, y = 10)
Label(Lw, text = "用户名:", font = ("幼圆", 14), fg = "green").place(x = 20, y = 70) #用户名
Label(Lw, text = "密码:", font = ("幼圆", 14), fg = "green").place(x = 20, y = 100) #密码_usn = StringVar()
eusn = Entry(Lw, textvariable = _usn, font = ("幼圆", 14), width = 30)
eusn.place(x = 100, y = 70)_pwd = StringVar()
epwd = Entry(Lw, textvariable = _pwd, font = ("幼圆", 14), width = 30, show = "⁕")
epwd.place(x = 100, y = 100)
2、功能部分
登录:
def login():countdown = 0usn = _usn.get()pwd = _pwd.get()try:with open('usr_info.pickle', 'rb') as usr_file:usrs_info = pickle.load(usr_file)except FileNotFoundError:with open('usr_info.pickle', 'wb') as usr_file:usrs_info = {'admin': 'admin'}pickle.dump(usrs_info, usr_file)if usn in usrs_info:if pwd == usrs_info[usn]:messagebox.showinfo("欢迎", "登陆成功!")else:messagebox.showerror("错误", "用户名或密码错误!")
登录时会自动往用户库里写入用户信息,若没有库的话会自动创建一个。
此程序会辨别输入的用户到底有没有库里,不在的话会显示错误。
注册与控件:
def signIn():def signUser():nu = _nusr.get()np = _npwd.getnc = _npco.get()try:with open('usr_info.pickle', 'rb') as usr_file:exist_usr_info = pickle.load(usr_file)except FileNotFoundError:exist_usr_info = {}if nu and np in exist_usr_info:messagebox.showerror("错误", "该用户已存在!")elif np != nc:messagebox.showerror("错误", "密码与验证密码不一致!")elif nu == "" or np == "":messagebox.showerror("错误", "用户名或密码不能为空!")else:exist_usr_info[nu] = npwith open('usr_info.pickle', 'wb') as usr_file:pickle.dump(exist_usr_info, usr_file)tk.messagebox.showinfo('欢迎', '注册成功')Sw.destroy()Sw = Toplevel(Lw)Sw.geometry('350x200')Sw.title('注册')Label(Sw, text='用户名:').place(x=10, y=10)Label(Sw, text='请输入密码:').place(x=10, y=50)Label(Sw, text='请再次输入密码:').place(x=10, y=90)_nusr = StringVar()Entry(Sw, textvariable=_nusr).place(x=150, y=10)_npwd = StringVar()Entry(Sw, textvariable=new_pwd, show="⁕").place(x=150, y=50)_npco = StringVar()Entry(Sw, textvariable=new_pwd_confirm, show="⁕").place(x=150, y=90)coBt = Button(Sw, text="确认注册",command=signUser)coBt.place(x=150, y=130)
siBt = Button(Lw, text = "没有账号?注册", command = signIn)
siBt.place(x = 50, y = 200)
loBt = Button(Lw, text = "登录", command = login)
loBt.place(x = 10, y = 200)
3、完整代码
#!/usr/bin/env/python38
#-*- coding:utf-8 -*-
#Author:Ez135513
#Created time:7/20/2022
from tkinter import * #这里为了简便,一般不建议使用
from tkinter import messagebox
import pickle
Lw = Tk()
Lw.title("测试")
Lw.geometry("500x300")
Label(Lw, text = "登录 ", font = ("幼圆", 26), fg = "white", bg = "green").place(x = 10, y = 10)
Label(Lw, text = "用户名:", font = ("幼圆", 14), fg = "green").place(x = 20, y = 70) #用户名
Label(Lw, text = "密码:", font = ("幼圆", 14), fg = "green").place(x = 20, y = 100) #密码_usn = StringVar()
eusn = Entry(Lw, textvariable = _usn, font = ("幼圆", 14), width = 30)
eusn.place(x = 100, y = 70)_pwd = StringVar()
epwd = Entry(Lw, textvariable = _pwd, font = ("幼圆", 14), width = 30, show = "⁕")
epwd.place(x = 100, y = 100)def login():countdown = 0usn = _usn.get()pwd = _pwd.get()try:with open('usr_info.pickle', 'rb') as usr_file:usrs_info = pickle.load(usr_file)except FileNotFoundError:with open('usr_info.pickle', 'wb') as usr_file:usrs_info = {'admin': 'admin'}pickle.dump(usrs_info, usr_file)if usn in usrs_info:if pwd == usrs_info[usn]:messagebox.showinfo("欢迎", "登陆成功!")else:messagebox.showerror("错误", "用户名或密码错误!")def signIn():def signUser():nu = _nusr.get()np = _npwd.getnc = _npco.get()try:with open('usr_info.pickle', 'rb') as usr_file:exist_usr_info = pickle.load(usr_file)except FileNotFoundError:exist_usr_info = {}if nu and np in exist_usr_info:messagebox.showerror("错误", "该用户已存在!")elif np != nc:messagebox.showerror("错误", "密码与验证密码不一致!")elif nu == "" or np == "":messagebox.showerror("错误", "用户名或密码不能为空!")else:exist_usr_info[nu] = npwith open('usr_info.pickle', 'wb') as usr_file:pickle.dump(exist_usr_info, usr_file)tk.messagebox.showinfo('欢迎', '注册成功')Sw.destroy()Sw = Toplevel(Lw)Sw.geometry('350x200')Sw.title('注册')Label(Sw, text='用户名:').place(x=10, y=10)Label(Sw, text='请输入密码:').place(x=10, y=50)Label(Sw, text='请再次输入密码:').place(x=10, y=90)_nusr = StringVar()Entry(Sw, textvariable=_nusr).place(x=150, y=10)_npwd = StringVar()Entry(Sw, textvariable=new_pwd, show="⁕").place(x=150, y=50)_npco = StringVar()Entry(Sw, textvariable=new_pwd_confirm, show="⁕").place(x=150, y=90)coBt = Button(Sw, text="确认注册",command=signUser)coBt.place(x=150, y=130)
siBt = Button(Lw, text = "没有账号?注册", command = signIn)
siBt.place(x = 50, y = 200)
loBt = Button(Lw, text = "登录", command = login)
loBt.place(x = 10, y = 200)
大功告成!
Python制作登陆界面(2)(中等级)相关推荐
- 用Python制作登录界面
用Python制作登录界面 PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口.底层已经实现了窗口的基本功能. 登录界面: import sys from PyQt5 import QtC ...
- python制作软件界面_python界面设计工具Qtdesigner
QtDesigner Qtdesigner是python中的界面设计工具.创建的界面保存为ui类型的文件,再用Pyuic工具把UI界面文件转化为py代码. 安装PyQt5-tools 先要安装pyqt ...
- python制作窗口界面_python爬虫如何制作可视化界面?(pyqt5环境配置篇)
却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...
- Jsp制作登陆界面(无后台)
在经过了两学期的学习之后,对于编程序也有了一定的了解,这次学习了jsp脚本编程语言,这次我们需要做一个登陆界面,无后台版本,大致分为了一下几个步骤. 1.首先是新建相应的项目.文件.以及配置相应的环境 ...
- PYqt5制作登陆界面
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 界面是根据b站up来做的链接放到文章末尾 本人菜鸡没能去除外面的form,效果图如下 文章目录 前言 一.环境搭建? 二.py源码 总 ...
- python制作窗口界面_python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
窗口背景主要包括,背景色与背景图片,设置窗口背景有三种方法 使用QSS设置窗口背景 使用QPalette设置窗口背景 实现PainEvent,使用QPainter绘制背景 QSS设置窗口背景 在QSS ...
- python制作软件界面_Python 脚本 GUI 界面生成工具
前言 对于一些 Python 脚本,我们想把它打包给其他人使用,不是黑色的命令行框,而是打包成一个有界面的程序包给别人,让普通用户也能用上是多么酷的事啊. 涉及到界面,就少不了 GUI 编程,对于一些 ...
- python制作软件界面_Python图形界面GUI程序设计
1.GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显 ...
- python制作软件界面_使用Python制作一个带GUI界面的词云自动生成工具(一)
在现实生活中你可能会遇到这种情况:想知道一篇论文中哪个词语最多,哪些词语最少(以此判断文章的主要内容):想知道一部小说中哪一个人物出现的次数最多(当然,出现次数最多的那个人也不一定是主脚):想知道一部 ...
最新文章
- 一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s
- 如何高效地遍历 MongoDB 超大集合?
- Apache与Nginx的优缺点比较
- 二维树状数组 BZOJ 1452 [JSOI2009]Count
- linux之文本比较工具
- 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
- android handle显示加载框
- [20161031]rman备份与数据文件OS块.txt
- 鳗鱼刺多怎么处理图像_怎么在做鱼前去除鳗鱼刺?
- PYTHON得到pdf页数、遍历当前文件夹
- 红米android4.4.2,新版红米Note配置升级详解:系统其实是基于Android 4.4.2
- String类型转换的三种方法分析
- [入门阅读]怎样在android中解析JSON
- abort()和exit()的区别
- c#学习笔记之Application.DoEvents应用
- 学习笔记-安全-MAC地址攻击
- 使用echarts中国地图上绘制散点图(自适应宽高)
- sql order by错top(100)percent
- win10使用VMware Workstations安装CentOS
- Unity PC打包后日志查看