使用 Python Tkinter 建立簡單的登錄檔單


Tkinter 是一個用於開發 GUI(圖形使用者介面)的 Python 庫。我們使用 tkinter 庫來建立 UI(使用者介面)應用程式,建立視窗以及所有其他圖形使用者介面。

如果您使用的是 python 3.x(推薦),則 Tkinter 將作為標準軟體包隨 Python 一起提供,因此我們無需安裝任何內容即可使用它。

在 Tkinter 中建立登錄檔單之前,讓我們首先在 Tkinter 中建立一個簡單的 GUI 應用程式。

建立簡單的 GUI 應用程式

以下是僅透過匯入 Tkinter 並設定其標題來建立視窗的程式:

from tkinter import *
from tkinter import ttk
window = Tk()
window.title("Welcome to TutorialsPoint")
window.geometry('325x250')
window.configure(background = "gray")
ttk.Button(window, text="Hello, Tkinter").grid()
window.mainloop()

執行以上程式碼行後,您將看到類似以下的輸出:

讓我們瞭解以上程式碼行:

  • 首先,我們匯入所有需要的模組,我們已從 tkinter 庫中匯入了 ttk 和 *(所有)。

  • 要建立應用程式的主視窗,我們使用 Tk 類。

  • window.title(),為我們的視窗應用程式提供標題。

  • window.geometry(),設定視窗的大小,window.configure(),設定其背景顏色。

  • ttk.Button() 建立一個按鈕。

  • ttk.Button(window, text="Hello, Tkinter").grid() – window 表示 Tk,因此它顯示在我們建立的視窗中,text- 將在視窗中顯示文字,grid 將使其處於網格中。

  • Window.mainloop(),此函式呼叫視窗的無限迴圈,因此將保持開啟狀態,直到使用者關閉它。

讓我們嘗試擴充套件我們之前的示例,在程式碼中新增幾個標籤(標籤是一個簡單的部件,用於顯示一段文字或影像)和按鈕(按鈕通常直接對映到使用者操作,這意味著單擊按鈕時,應執行某些操作)。

from tkinter import *
from tkinter import ttk
window = Tk()
window.title("Welcome to TutorialsPoint")
window.geometry('400x400')
window.configure(background = "grey");
a = Label(window ,text = "First Name").grid(row = 0,column = 0)
b = Label(window ,text = "Last Name").grid(row = 1,column = 0)
c = Label(window ,text = "Email Id").grid(row = 2,column = 0)
d = Label(window ,text = "Contact Number").grid(row = 3,column = 0)
a1 = Entry(window).grid(row = 0,column = 1)
b1 = Entry(window).grid(row = 1,column = 1)
c1 = Entry(window).grid(row = 2,column = 1)
d1 = Entry(window).grid(row = 3,column = 1)
def clicked():
   res = "Welcome to " + txt.get()
   lbl.configure(text= res)
btn = ttk.Button(window ,text="Submit").grid(row=4,column=0)
window.mainloop()

執行以上程式碼後,我們將看到類似以下的輸出螢幕:

現在讓我們從現實世界中建立一些東西,也許是一個貸款利息計算器。為此,我們需要知道幾個專案(變數),例如本金金額、貸款利率 (r)、s 次還款後的餘額 (Bs)。要計算 s 次還款後的貸款,我們使用以下程式中的公式:

Ps = ((1+r)^s.Bo) – (((1 + r)^s – 1)/ r)*p

其中:

利率 = 利率,例如 7.5%

i = 利率/100,年利率(十進位制)

r = 期利率 = i/12

Po = 本金金額

Ps = s 次還款後的餘額

s = 每月還款次數

p = 期限(每月)還款額

因此,以下是利息計算器程式,它將顯示一個彈出視窗,使用者可以在其中設定所需的值(貸款金額、利率、分期付款次數),並藉助 python tkinter 庫獲得每月還款金額以及他需要支付的剩餘貸款。

from tkinter import *
fields = ('Annual Rate', 'Number of Payments', 'Loan Principle', 'Monthly Payment', 'Remaining Loan')
def monthly_payment(entries):
   # period rate:
   r = (float(entries['Annual Rate'].get()) / 100) / 12
   print("r", r)
   # principal loan:
   loan = float(entries['Loan Principle'].get())
   n = float(entries['Number of Payments'].get())
   remaining_loan = float(entries['Remaining Loan'].get())
   q = (1 + r)** n
   monthly = r * ( (q * loan - remaining_loan) / ( q - 1 ))
   monthly = ("%8.2f" % monthly).strip()
   entries['Monthly Payment'].delete(0,END)
   entries['Monthly Payment'].insert(0, monthly )
   print("Monthly Payment: %f" % float(monthly))
def final_balance(entries):
   # period rate:
   r = (float(entries['Annual Rate'].get()) / 100) / 12
   print("r", r)
   # principal loan:
   loan = float(entries['Loan Principle'].get())
   n = float(entries['Number of Payments'].get())
   q = (1 + r)** n
   monthly = float(entries['Monthly Payment'].get())
   q = (1 + r)** n
   remaining = q * loan - ( (q - 1) / r) * monthly
   remaining = ("%8.2f" % remaining).strip()
   entries['Remaining Loan'].delete(0,END)
   entries['Remaining Loan'].insert(0, remaining )
   print("Remaining Loan: %f" % float(remaining))
def makeform(root, fields):
   entries = {}
   for field in fields:
      row = Frame(root)
      lab = Label(row, width=22, text=field+": ", anchor='w')
      ent = Entry(row)
      ent.insert(0,"0")
      row.pack(side = TOP, fill = X, padx = 5 , pady = 5)
      lab.pack(side = LEFT)
      ent.pack(side = RIGHT, expand = YES, fill = X)
      entries[field] = ent
   return entries
if __name__ == '__main__':
   root = Tk()
   ents = makeform(root, fields)
   root.bind('<Return>', (lambda event, e = ents: fetch(e)))
   b1 = Button(root, text = 'Final Balance',
      command=(lambda e = ents: final_balance(e)))
   b1.pack(side = LEFT, padx = 5, pady = 5)
   b2 = Button(root, text='Monthly Payment',
   command=(lambda e = ents: monthly_payment(e)))
   b2.pack(side = LEFT, padx = 5, pady = 5)
   b3 = Button(root, text = 'Quit', command = root.quit)
   b3.pack(side = LEFT, padx = 5, pady = 5)
   root.mainloop()

輸出

從上面我們可以看到,使用者可以透過輸入貸款金額、利率和還款次數來找到最終(剩餘)餘額和每月還款額。

更新於: 2019-07-30

20K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告