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 相关文章推荐
python监控键盘输入实例代码
Feb 09 Python
python实现聚类算法原理
Feb 12 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
在python里创建一个任务(Task)实例
Apr 25 Python
python对接ihuyi实现短信验证码发送
May 10 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
深入理解python多线程编程
Apr 18 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
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
javascript数组详解
2014/10/22 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
python opencv进行图像拼接
2020/03/27 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
给排水专业应届生求职信
2013/10/12 职场文书
财务主管自我鉴定
2014/01/17 职场文书
化工工艺设计求职信
2014/06/25 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
办公室岗位职责范本
2015/04/11 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis