Python登录系统界面实现详解


Posted in Python onJune 25, 2019

导言篇

我的python环境是:python3.6.5

这里我选择的GUI编程包是:tkinter

tkinker在python2.5以后就是自带包了,所以我们不需要另外安装

tkinker相对与其他python GUI编程的包而已,是相对容易入手的

代码篇

这是系统的登录界面  

import tkinter 
from tkinter import messagebox
class Login(object): 
 def __init__(self): 
  # 创建主窗口,用于容纳其它组件 
  self.root = tkinter.Tk() 
  # 给主窗口设置标题内容 
  self.root.title("影视资源管理系统(离线版)") 
  self.root.geometry('450x300') 
  #运行代码时记得添加一个gif图片文件,不然是会出错的
  self.canvas = tkinter.Canvas(self.root, height=200, width=500)#创建画布 
  self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加载图片文件 
  self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#将图片置于画布上 
  self.canvas.pack(side='top')#放置画布(为上端) 
  #创建一个`label`名为`Account: ` 
  self.label_account = tkinter.Label(self.root, text='Account: ') 
  #创建一个`label`名为`Password: ` 
  self.label_password = tkinter.Label(self.root, text='Password: ') 
  # 创建一个账号输入框,并设置尺寸 
  self.input_account = tkinter.Entry(self.root, width=30) 
  # 创建一个密码输入框,并设置尺寸 
  self.input_password = tkinter.Entry(self.root, show='*', width=30) 
  # 创建一个登录系统的按钮 
  self.login_button = tkinter.Button(self.root, command = self.backstage_interface, text = "Login", width=10) 
  # 创建一个注册系统的按钮 
  self.siginUp_button = tkinter.Button(self.root, command = self.siginUp_interface, text = "Sign up", width=10) 
 # 完成布局 
 def gui_arrang(self): 
  self.label_account.place(x=60, y= 170) 
  self.label_password.place(x=60, y= 195) 
  self.input_account.place(x=135, y=170) 
  self.input_password.place(x=135, y=195) 
  self.login_button.place(x=140, y=235) 
  self.siginUp_button.place(x=240, y=235) 
 # 进入注册界面 
 def siginUp_interface(self): 
  # self.root.destroy() 
  tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入注册界面')  
 # 进行登录信息验证 
 def backstage_interface(self): 
  account = self.input_account.get().ljust(10," ") 
  password = self.input_password.get().ljust(10," ") 
  #对账户信息进行验证,普通用户返回user,管理员返回master,账户错误返回noAccount,密码错误返回noPassword 
  verifyResult = verifyAccount.verifyAccountData(account,password) 
  if verifyResult=='master': 
   self.root.destroy() 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入管理界面') 
  elif verifyResult=='user': 
   self.root.destroy() 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='进入用户界面') 
  elif verifyResult=='noAccount': 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='该账号不存在请重新输入!') 
  elif verifyResult=='noPassword': 
   tkinter.messagebox.showinfo(title='影视资源管理系统', message='账号/密码错误请重新输入!') 
def main(): 
 # 初始化对象 
 L = Login() 
 # 进行布局 
 L.gui_arrang() 
 # 主程序执行 
 tkinter.mainloop() 
if __name__ == '__main__': 
 main()

效果篇

Python登录系统界面实现详解

语法介绍

环境配置:

Python3.6.5,前往官网下载

tkinker包:Python2.5之后,tkinker包是自带的,我们直接导入就好了

基本语法:

self.root = tkinter.Tk()

创建一个窗口对象root,root前面的self.是面向对象里面的内容,不明白的童鞋可以去Google一下面向对象

self.root.title("影视资源管理系统(离线版)") 
self.root.geometry('450x300')

给窗口root设置标题,并设置窗口

self.canvas = tkinter.Canvas(self.root, height=200, width=500)#创建画布 
self.image_file = tkinter.PhotoImage(file='welcome_1.gif')#加载图片文件 
self.image = self.canvas.create_image(0,0, anchor='nw', image=self.image_file)#将图片置于画布上 
self.canvas.pack(side='top')#放置画布(为上端)

如果我们需要让自己的界面在美观上加分,大可以试试创建一个画布,也就是下面这个东西

Python登录系统界面实现详解

我这里是先对图片背景进行了透明化处理,需要的小伙伴可以去这里 对图片进行处理,个人觉得这个网站还是不错的

#创建一个`label`名为`Account: ` 
self.label_account = tkinter.Label(self.root, text='Account: ') 
#创建一个`label`名为`Password: ` 
self.label_password = tkinter.Label(self.root, text='Password: ')

这里创建的是一个label,label是什么不明白可以参考上面贴图的“Account:”与“Password:”

.Label(A, B):参数A代表Lable依赖窗口,参数B即用户可见的Lable的名字了(text="LableName")

.Button(A, B, text='', [width='', height='']):参数A是按钮依赖的窗口主体,参数B是按钮的相应事件(command = self.siginUp_interface)这里的响应事件的进行注册/登录进入后台,command后接响应函数。

.Entry(A):输入框,参照前面的.Label(),有疑问的可以在下方留言

.place(x="", y=""):这个是设置窗口部件的函数

额。。。。登录界面就介绍到这里了,后面我会继续更新登录界面的响应机制,有不明的地方可以在下方留言,我看到会回复的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
Python使用Flask框架获取当前查询参数的方法
Mar 21 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
在双python下设置python3为默认的方法
Oct 31 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
对python中的装包与解包实例详解
Aug 24 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python中qutip用法示例详解
Oct 02 Python
用python打印菱形的实操方法和代码
Jun 25 #Python
python爬虫实现中英翻译词典
Jun 25 #Python
选择python进行数据分析的理由和优势
Jun 25 #Python
python的sorted用法详解
Jun 25 #Python
PyQt5实现简易电子词典
Jun 25 #Python
python如何制作英文字典
Jun 25 #Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 #Python
You might like
php中curl和file_get_content的区别
2014/05/10 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
php格式化json函数示例代码
2016/05/12 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
jquery简单体验
2007/01/10 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
JS实现队列的先进先出功能示例
2017/05/10 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
python操作日期和时间的方法
2014/03/11 Python
python中pass语句用法实例分析
2015/04/30 Python
浅谈Python中的私有变量
2018/02/28 Python
python manage.py runserver流程解析
2019/11/08 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
一文读懂Python 枚举
2020/08/25 Python
Python识别处理照片中的条形码
2020/11/16 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
职业女性的职业规划
2014/03/04 职场文书
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android