前言

本人又来教大家制作登陆界面啦!

大家知道弹窗在电脑中无处不在:浏览器界面啊,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)(中等级)相关推荐

  1. 用Python制作登录界面

    用Python制作登录界面 PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口.底层已经实现了窗口的基本功能. 登录界面: import sys from PyQt5 import QtC ...

  2. python制作软件界面_python界面设计工具Qtdesigner

    QtDesigner Qtdesigner是python中的界面设计工具.创建的界面保存为ui类型的文件,再用Pyuic工具把UI界面文件转化为py代码. 安装PyQt5-tools 先要安装pyqt ...

  3. python制作窗口界面_python爬虫如何制作可视化界面?(pyqt5环境配置篇)

    却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...

  4. Jsp制作登陆界面(无后台)

    在经过了两学期的学习之后,对于编程序也有了一定的了解,这次学习了jsp脚本编程语言,这次我们需要做一个登陆界面,无后台版本,大致分为了一下几个步骤. 1.首先是新建相应的项目.文件.以及配置相应的环境 ...

  5. PYqt5制作登陆界面

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 界面是根据b站up来做的链接放到文章末尾 本人菜鸡没能去除外面的form,效果图如下 文章目录 前言 一.环境搭建? 二.py源码 总 ...

  6. python制作窗口界面_python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例

    窗口背景主要包括,背景色与背景图片,设置窗口背景有三种方法 使用QSS设置窗口背景 使用QPalette设置窗口背景 实现PainEvent,使用QPainter绘制背景 QSS设置窗口背景 在QSS ...

  7. python制作软件界面_Python 脚本 GUI 界面生成工具

    前言 对于一些 Python 脚本,我们想把它打包给其他人使用,不是黑色的命令行框,而是打包成一个有界面的程序包给别人,让普通用户也能用上是多么酷的事啊. 涉及到界面,就少不了 GUI 编程,对于一些 ...

  8. python制作软件界面_Python图形界面GUI程序设计

    1.GUI是什么? 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 图形用户界面是一种人与计算机通信的界面显 ...

  9. python制作软件界面_使用Python制作一个带GUI界面的词云自动生成工具(一)

    在现实生活中你可能会遇到这种情况:想知道一篇论文中哪个词语最多,哪些词语最少(以此判断文章的主要内容):想知道一部小说中哪一个人物出现的次数最多(当然,出现次数最多的那个人也不一定是主脚):想知道一部 ...

最新文章

  1. 一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s
  2. 如何高效地遍历 MongoDB 超大集合?
  3. Apache与Nginx的优缺点比较
  4. 二维树状数组 BZOJ 1452 [JSOI2009]Count
  5. linux之文本比较工具
  6. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
  7. android handle显示加载框
  8. [20161031]rman备份与数据文件OS块.txt
  9. 鳗鱼刺多怎么处理图像_怎么在做鱼前去除鳗鱼刺?
  10. PYTHON得到pdf页数、遍历当前文件夹
  11. 红米android4.4.2,新版红米Note配置升级详解:系统其实是基于Android 4.4.2
  12. String类型转换的三种方法分析
  13. [入门阅读]怎样在android中解析JSON
  14. abort()和exit()的区别
  15. c#学习笔记之Application.DoEvents应用
  16. 学习笔记-安全-MAC地址攻击
  17. 使用echarts中国地图上绘制散点图(自适应宽高)
  18. sql order by错top(100)percent
  19. win10使用VMware Workstations安装CentOS
  20. Unity PC打包后日志查看

热门文章

  1. 1.1 DB DBMS DBA DBS简述
  2. 高速试验检测报告依据、结论、监理批复用语
  3. 【高级】管理科学基础知识
  4. 执行git命令时,显示failed to push some refs to的解决方法
  5. 百度APP大规模敏捷研发项目管理
  6. jq文字无缝滚动代码(鼠标悬停停止滚动)
  7. Banner竖向轮播实现
  8. DOM操作 (创建、增、删、改、查、属性操作、事件操作)
  9. Java简单计算器界面及功能的实现
  10. Cesium动态更改贴图