tkinter 創建登陸註冊界面

来源:http://www.cnblogs.com/attentle/archive/2017/06/29/7096746.html
-Advertisement-
Play Games

這是我寫的登陸註冊界面,使用tkinter,可以實現簡單的登陸和註冊賬號,使用的主要是Label,Entry和Button組件。 ...


import tkinter as tk
from tkinter import messagebox

#設置視窗居中
def window_info():
    ws = window.winfo_screenwidth()
    hs = window.winfo_screenheight()
    x = (ws / 2) - 200
    y = (hs / 2) - 200
    print("%d,%d" % (ws, hs))
    return x,y

#設置登陸視窗屬性
window = tk.Tk()
window.title('歡迎使用停車場收費系統')
a,b=window_info()
window.geometry("450x300+%d+%d"%(a,b))

#登陸界面的信息
tk.Label(window,text="停車場收費系統",font=("宋體",32)).place(x=80,y=50)
tk.Label(window,text="賬號:").place(x=120,y=150)
tk.Label(window,text="密碼:").place(x=120,y=190)
#顯示輸入框
var_usr_name = tk.StringVar()
#顯示預設賬號
var_usr_name.set('1400370101')
entry_usr_name=tk.Entry(window,textvariable=var_usr_name)
entry_usr_name.place(x=190,y=150)
var_usr_pwd = tk.StringVar()
#設置輸入密碼後顯示*號
entry_usr_pwd = tk.Entry(window,textvariable=var_usr_pwd,show='*')
entry_usr_pwd.place(x=190,y=190)

#登陸函數
def usr_login():
    #獲取輸入的賬號密碼
    usr_name = var_usr_name.get()
    usr_pwd = var_usr_pwd.get()
    #獲取存儲的賬戶信息,此處使用的是資料庫,調用資料庫查詢函數,也可以使用其他方式,如文件等
    dicts = SQL.load('login')
    print(dicts)
    bool = False
    for row in dicts:
        print(row.get("name"))
        if usr_name == row["name"]:
            bool = True
            pwd = row["password"]
            print(row)
    if bool == True:
        if usr_pwd == pwd:
            tk.messagebox.showinfo(title='Welcome', message='How are you?' +usr_name)
            mainwindow()
        else:
            tk.messagebox.showerror(message='對不起,輸入錯誤,請重試!')
    else:
        is_sign_up = tk.messagebox.askyesno('Welcome', '您還沒有註冊,是否現在註冊呢?')
        if is_sign_up:
            usr_sign_up()
#註冊賬號
def usr_sign_up():
    def sign_to_Pyhon():
        np = new_pwd.get()
        npc = new_pwd_confirm.get()
        nn = new_name.get()

        dicts = SQL.load('login')
        print(dicts)
        bool = False
        for row in dicts:
            if nn == row["name"]:
                bool = True
                print(row)
        if np!=npc:
            tk.messagebox.showerror('對不起','兩次密碼輸入不一致!')
        elif bool:
            tk.messagebox.showerror(('對不起','此賬號已經存在!'))
        else:
            try:
                SQL.insert_login(str(nn),str(np))
                tk.messagebox.showinfo('Welcome','您已經註冊成功!')
            except:
                tk.messagebox.showerror(('註冊失敗!'))
            window_sign_up.destroy()
   #創建top視窗作為註冊視窗
    window_sign_up = tk.Toplevel(window)
    window_sign_up.geometry('350x200')
    window_sign_up.title('註冊')

    new_name = tk.StringVar()
    new_name.set('1400370115')
    tk.Label(window_sign_up,text='賬號:').place(x=80,y=10)
    entry_new_name = tk.Entry(window_sign_up,textvariable=new_name)
    entry_new_name.place(x=150,y=10)

    new_pwd = tk.StringVar()
    tk.Label(window_sign_up, text='密碼:').place(x=80, y=50)
    entry_usr_pwd =   tk.Entry(window_sign_up,textvariable=new_pwd,show='*')
    entry_usr_pwd.place(x=150, y=50)

    new_pwd_confirm = tk.StringVar()
    tk.Label(window_sign_up,text='再次輸入:').place(x=80,y=90)
    entry_usr_pwd_again = tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*')
    entry_usr_pwd_again.place(x=150, y=90)

    btn_again_sign_up = tk.Button(window_sign_up,text='註冊',command=sign_to_Pyhon)
    btn_again_sign_up.place(x=160,y=130)

#登陸和註冊按鈕
btn_login = tk.Button(window,text="登陸",command=usr_login)
btn_login.place(x=170,y=230)
btn_sign_up = tk.Button(window,text="註冊",command=usr_sign_up)
btn_sign_up.place(x=270,y=230)

window.mainloop()

  這是我寫的登陸註冊界面,使用tkinter,可以實現簡單的登陸和註冊賬號,使用的主要是Label,Entry和Button組件。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【增加一條新的數據】 因為使用資料庫先行的模式,所以將數據保存到資料庫的操作變得非常簡單,你只需要寫簡單的幾行代碼就能將對象的實例保存到資料庫中 你也可以使用下麵的方式,將數據保存到資料庫中 當然保存數據也是支持非同步的 【批量數據插入】 Entity Framework提供了AddRange方法,可 ...
  • 在mvvm模式的wpf項目中有個需求需要去載入解決方案的程式集,並且根據程式集去動態載入當前程式集的類,做成下拉框形式。 效果: wpf窗體: ...
  • 本期來討論下,jupyter notebook中怎樣同時安裝python2.7 和python3.x。 ...
  • 介面是什麼,抽象類又是什麼,有了抽象類,我們為什麼還要有介面呢? 抽象類 抽象類的概念: 抽象類是相對於普通類而言的,普通類是一個完善的功能類,可以直接產生實例化對象,並且在普通類中可以包含有構造方法、普通方法、static方法、常量和變數等內容。而抽象類是指在普通類的結構裡面增加抽象方法的組成部分 ...
  • 一、說明 與@Component註解功能相同,但意義不同的註解還有三個: 1)@Repository:註解在Dao實現類上 2)@Service:註解在Service實現類上 3)@Controller:註解在SpringMVC的處理器上 Bean作用域: @Scope("prototype"):用 ...
  • Python中的可變對象和不可變對象 什麼是可變/不可變對象 不可變對象,該對象所指向的記憶體中的值不能被改變。 當改變某個變數時候,由於其所指的值不能被改變,相當於把原來的值複製一份後再改變,這會開闢一個新的地址,變數再指向這個新的地址。 可變對象,該對象所指向的記憶體中的值可以被改變。 變數(準確的 ...
  • /* 選擇工廠和更新工廠模式,這個模式的類(UpdateFactory和SelectionFactory類)就是用來創建SQL語句的. 因為涉及到之前學習的內容比較多,這裡就儘量將之前相關模式的示例代碼放在一起來進行學習和回顧了。 以下的代碼都是代碼片段而且涉及到連接資料庫,無法進行整體的調試(某些... ...
  • 動態規劃的演算法題往往都是各大公司筆試題的常客。在不少演算法類的微信公眾號中,關於“動態規劃”的文章屢見不鮮,都在試圖用最淺顯易懂的文字來描述講解動態規劃,甚至有的用漫畫來解釋,認真讀每一篇公眾號推送的文章實際上都能讀得懂,都能對動態規劃有一個大概瞭解。 什麼是動態規劃?通俗地理解來說,一個問題的解決辦 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...