【Python】手把手教你用tkinter设计图书管理登录UI界面(一)

下一篇:

本项目将分段设计“图书管理登录UI界面”的用户登录、用户注册、用户账号找回等。主要围绕GUI标准库tkinter、以及类的继承(重点)来设计本项目。

首先新建一个文件夹命名为“图书管理系统项目”,并在其目录下新建文件夹code、photo、user_data。然后在code目录下新建“登录UI.py”,再然后把图片放在photo目录下,如下图:

注意:此时的窗口组件并未绑定触发事件,所以按键无法触发。

运行结果

登录UI.py 代码示例

"""登录UI 模块
"""# 通配符 '*'
__all__ = ['LoginUI']import tkinter as tk
from tkinter import ttkclass LoginUI(tk.Tk):"""继承tk.Tk,创建登录UI"""def __init__(self):"""构造方法"""# 调用tk.Tk的构造方法super().__init__()self.width = self.winfo_screenwidth()           # 窗口宽初始位置为屏幕宽度位置显示self.height = self.winfo_screenheight()         # 窗口高初始位置为屏幕高度位置显示# 设计自己项目的UIself.title('图书管理登录界面')                                  # 标题self.geometry(f'610x406+{self.width//4}+{self.height//8}')   # 窗口像素大小self.resizable(0, 0)                                         # 窗口大小禁止调节# 窗口背景图self.backgroundPhoto = tk.PhotoImage(file='..\\photo\\用户登录背景.png')self.backgroundButton = ttk.Button(self, image=self.backgroundPhoto)self.backgroundButton.pack()# 系统名self.titleLabel = tk.Label(self, text='图  书  管  理  系  统', font=('Tahoma', 30, 'bold'))self.titleLabel.place(x=118, y=40)# 输入格式错误提示self.hintLabel = tk.Label(self, text='欢迎使用【图书管理系统】')self.hintLabel.pack(side=tk.BOTTOM, fill=tk.BOTH)# 用户名tk.Label(self, text='用户名').place(x=170, y=160)# 输入用户名self.userName = tk.StringVar()self.userEntry = ttk.Entry(self, textvariable=self.userName, width=22)self.userEntry.place(x=223, y=161)# 随机用户名self.randomPhoto = tk.PhotoImage(file='..\\photo\\随机用户名.png')self.randomButton = tk.Button(self, image=self.randomPhoto, relief=tk.FLAT)self.randomButton.place(x=358, y=162)# 密码tk.Label(self, text='密   码').place(x=170, y=200)# 输入密码self.password = tk.StringVar()self.passwordEntry = ttk.Entry(self, textvariable=self.password, width=22)self.passwordEntry.place(x=223, y=201)# 显示/隐藏密码self.showOrConcealCount = 0self.showPhoto = tk.PhotoImage(file='..\\photo\\密码显示.png')self.concealPhoto = tk.PhotoImage(file='..\\photo\\密码隐藏.png')self.showOrConcealButton = tk.Button(self, image=self.showPhoto, relief=tk.FLAT)self.showOrConcealButton.place(x=358, y=205)# 验证码tk.Label(self, text='验证码').place(x=170, y=244)# 输入验证码self.inputVerifyCode = tk.StringVar()self.verifyEntry = ttk.Entry(self, textvariable=self.inputVerifyCode, width=15)self.verifyEntry.place(x=223, y=244)# 随机验证码self.showVerifyCode = tk.StringVar(value='获取验证码')self.verifyButton = tk.Button(self, textvariable=self.showVerifyCode, relief='flat', width=8)self.verifyButton.place(x=350, y=240)# 刷新验证码self.updatePhoto = tk.PhotoImage(file='..\\photo\\验证码更新.png')self.updateButton = tk.Button(self, image=self.updatePhoto, relief='flat')self.updateButton.place(x=310, y=245)# 注册self.registerButton = ttk.Button(self, text='注册', width=4)self.registerButton.place(x=395, y=159)# 找回self.retrieveButton = ttk.Button(self, text='找回', width=4)self.retrieveButton.place(x=395, y=199)# 登录self.loginButton = ttk.Button(self, text='登录')self.loginButton.place(x=200, y=300)# 退出ttk.Button(self, text='退出', command=self.destroy).place(x=310, y=300)# 代码测试
if __name__ == '__main__':ui = LoginUI()      # 对象实例化ui.mainloop()       # 窗口主循环
else:print(f'导入【{__name__}】模块')

作者:周华

传作日期:2023/12/10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/211660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分治】最接近点对Python实现

文章目录 [toc]问题描述一维最接近点对算法Python实现 二维最接近点对算法分治算法时间复杂性Python实现 问题描述 给定平面上 n n n个点,找其中的一对点,使得在 n n n个点组成的所有点对中,该点对的距离最小 一维最接近点对算法 Python实…

LED透镜粘接UV胶是一种特殊的UV固化胶,用于固定和粘合LED透镜。

LED透镜粘接UV胶是一种特殊的UV固化胶,用于固定和粘合LED透镜。 它具有以下特点: 1. 高透明度:LED透镜粘接UV胶具有高透明度,可以确保光线的透过性,不影响LED的亮度和效果。 2. 快速固化:经过UV紫外线照射…

CPU、MCU、MPU、DSP、FPGA各是什么?有什么区别?

1、CPU 中央处理器,简称 CPU(Central Processing Unit),中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 电子计算机三大核心部件就是CPU…

力扣257. 二叉树的所有路径(递归回溯与迭代)

题目: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5","…

[陇剑杯 2021]简单日志分析

[陇剑杯 2021]简单日志分析 题目做法及思路解析(个人分享) 问一:某应用程序被攻击,请分析日志后作答: 黑客攻击的参数是______。(如有字母请全部使用小写)。 题目思路: 分析…

C++牛客知识点2

提示:接上文 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要&#xff0…

http与https的区别,以及生产环境配置https的几种方式

http HTTP(超文本传输协议)是一种用于传输和处理超文本文档的协议。HTTP使用客户端-服务器模型。客户端通过HTTP请求协议向服务器发送请求,服务器则使用HTTP响应协议返回响应。HTTP协议通常使用TCP/IP作为底层传输协议,但它也可以使用其他传输协议。 H…

sql注入学习

基础查询语句: 给指定字段添加数据 insert into 表名(字段名1,字段名2,.....) values(值1,值2,......); 给全部字段添加数据 insert into 表名 values (值1,值2,.....);--无限制条件的修改,会修改整张表 update 表名 set 字段 值; --有限制条件的修改,只修改特定记…

软件设计师——计算机网络(二)

📑前言 本文主要是【计算机网络】——软件设计师——计算机网络的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1…

Promise介绍和使用

Promise Promise是一门新的技术(ES6规范),JS中进行异步编程的新解决方案。(旧的方案是使用回调函数,比如AJAX请求)。 从语法上来说Promise是一个构造函数。 从功能上来说Promise对象用来封装一个异步操作并…

生成式AI赋能千行百业加速创新,2023亚马逊云科技re:Invent行业盘点

2023亚马逊云科技re:Invent全球大会已于上周圆满闭幕,在本次大会中,亚马逊云科技又为大家带来了很多功能/项目迭代更新,也重磅发布了很多全新的功能。今天从行业视角来盘点回顾哪些重磅发布适用于垂直行业客户,以及面向汽车、制造…

ChatGLM3-6B和langchain阿里云部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ChatGLM3-6B部署搭建环境部署GLM3 二、Chatglm2-6blangchain部署三、Tips四、总结 前言 提示:这里可以添加本文要记录的大概内容: …

ffmpeg之ffprobe.c源码分析一---大流程及核心代码分析

文章目录 前言为什么学习ffprobe源码源码调试main()函数重要流程函数分析open_input_file函数分析avformat_match_stream_specifier函数分析read_packets函数分析本篇文章带你打通ffprobe源码的脉络。 关注公众号免费看: 前言 注:本文章全凭个人经验以及平时学习所记录,由…

gdal合成多个波段

def synthesis_bands(dst_list, outfile):"""将多光谱波段合成一个tif:param dst_list: 输入待合成文件的列表:param outfile: 影像的输出文件夹"""dataset_init gdal.Open(dst_list[0])# 创建待输出的图tiff_driver gdal.GetDriverByName(GTi…

【MySQL进阶】索引使用

一、索引使用 1.验证索引效率 tb_sku 这张表中准备了 1000w 的记录。 我用夸克网盘分享了「1000w的模拟数据」链接:https://pan.quark.cn/s/15cf665202b2 这张表中id为主键,有主键索引,而其他字段是没有建立索引的。 我们先来查询其中的…

JS基础之原型原型链

JS基础之原型&原型链 原型&原型链构造函数创建对象prototypeprotoconstructor实例与原型原型的原型原型链其他constructorproto继承 原型&原型链 构造函数创建对象 我们先使用构造函数创建一个对象: function Person(){ } var person new Person();…

多窗口文件管理工具Q-Dir安装以及使用教程

软件介绍 Q-Dir 是一款功能强大的Windows资源管理器,可以非常方便的管理你的各种文件。Q-Dir有4 个窗口,特别适用于频繁在各个目录间跳跃复制粘贴的情况,每个窗口都可以方便的切换目录,以不同颜色区分不同类型的文件,…

(企业项目)微服务项目解决跨域问题:

前后端分离项目中前端出现了跨域的问题 在网关模块配置文件中添加 配置 application.properties # 允许请求来源(老版本叫allowedOrigin) spring.cloud.gateway.globalcors.cors-configurations.[/**].allowedOriginPatterns* # 允许携带的头信息 spri…

idea__SpringBoot微服务06——静态资源(新依赖),首页和图标定制

静态资源 一、静态资源二、首页和图标定制————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#xffe3;︶&#xffe3;)&#xff0c;谢谢~~ 新依赖&#xff1a;jquery的 <dependency><groupId>org.webjars&…

说说设计体系、风格指南和模式库

目录 一、定义 二、设计体系 2.1 Design system 2.2 风格指南 2.3 Component 三、样式库 一、定义 设计体系&#xff08;Design system&#xff09;&#xff1a;可共享的设计语言的基础合集&#xff0c;包含了设计价值&#xff0c;语义&#xff0c;语法和上下文。 风格…