【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]简单日志分析 题目做法及思路解析(个人分享) 问一:某应用程序被攻击,请分析日志后作答: 黑客攻击的参数是______。(如有字母请全部使用小写)。 题目思路: 分析…

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

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

生成式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源码的脉络。 关注公众号免费看: 前言 注:本文章全凭个人经验以及平时学习所记录,由…

【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&…

matplotlib 默认属性和绘图风格

matplotlib 默认属性 一、绘图风格1. 绘制叠加折线图2. Solarize_Light23. _classic_test_patch4. _mpl-gallery5. _mpl-gallery-nogrid6. bmh7. classic8. fivethirtyeight9. ggplot10. grayscale11. seaborn12. seaborn-bright13. seaborn-colorblind14. seaborn-dark15. sea…

Chart 7 内存优化

文章目录 前言7.1 Adreno GPU OpenCL内存7.1.1 内存声明周期7.1.2 Loacl Memory7.1.3 Constant memory(常量内存)7.1.4 Private Memory7.1.5 Global Memory7.1.5.1 Buffer Object7.1.5.2 Image Object7.1.5.3 Image object vs. buffer object7.1.5.4 Use of both Image and buf…

C语言数据结构-双向链表

文章目录 1 双向链表的结构2 双向链表的实现2.1 定义双向链表的数据结构2.2 打印链表2.3 初始化链表2.4 销毁链表2.5 尾插,头插2.6 尾删,头删2.7 根据头次出现数据找下标2.8 定点前插入2.9 删除pos位置2.10 定点后插入 3 完整代码3.1 List.h3.2 Lish.c3.3 test.c 1 双向链表的结…

键盘打字盲打练习系列之矫正坐姿——4

一.欢迎来到我的酒馆 盲打&#xff0c;矫正坐姿&#xff01; 目录 一.欢迎来到我的酒馆二.继续练习二.矫正坐姿1.键鼠快速选购指南2.椅子快速选购指南 三.改善坐姿建议 二.继续练习 前面的章节&#xff0c;我们重点向大家介绍了主键盘区指法和键盘键位。经过一个系列的教程学习…

Mybatis环境搭建

1、开发环境 IDE&#xff1a;IntelliJ IDEA 2022.2.1 (Ultimate Edition) 构建工具&#xff1a;maven 3.6.1 MySQL版本&#xff1a;MySQL 5.7 MyBatis版本&#xff1a;MyBatis 3.5.14 2、工程创建 创建一个Maven工程giser-java-mybatis-demo 基础依赖如下&#xff1a; &…

用友U8 Cloud 多处反序列化RCE漏洞复现

0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。 0x02 漏洞概述 用友U8 Cloud存在多处(TableInputOperServlet、LoginServlet 、FileTransportServlet、CacheInvokeServlet、ActionHandlerServlet、Servle…