【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.pswp.cn/news/211660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211660.shtml
英文地址,請注明出處:http://en.pswp.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;語法和上下文。 風格…