Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แบบฟอร์มลงทะเบียนอย่างง่ายโดยใช้ Python Tkinter


Tkinter เป็นไลบรารี่หลามสำหรับการพัฒนา GUI (ส่วนต่อประสานกราฟิกกับผู้ใช้) เราใช้ไลบรารี tkinter เพื่อสร้างแอปพลิเคชันของ UI (ส่วนต่อประสานผู้ใช้) เพื่อสร้างหน้าต่างและส่วนต่อประสานกราฟิกกับผู้ใช้ทั้งหมด

หากคุณใช้ python 3.x (ซึ่งแนะนำ) Tkinter จะมาพร้อมกับ Python เป็นแพ็คเกจมาตรฐาน ดังนั้นเราจึงไม่ต้องติดตั้งอะไรเพื่อใช้งาน

ก่อนสร้างแบบฟอร์มการลงทะเบียนใน Tkinter ขั้นแรกให้สร้างแอปพลิเคชัน GUI อย่างง่ายใน Tkinter

การสร้างแอปพลิเคชัน 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()

เมื่อเรียกใช้โค้ดด้านบนนี้ คุณจะเห็นผลลัพธ์ดังนี้ −

แบบฟอร์มลงทะเบียนอย่างง่ายโดยใช้ Python Tkinter

มาทำความเข้าใจโค้ดด้านบนกัน −

  • อันดับแรก เรานำเข้าโมดูลทั้งหมดที่เราต้องการ เรานำเข้า ttk และ * (ทั้งหมด) จากไลบรารี tkinter แล้ว

  • ในการสร้างหน้าต่างหลักของแอปพลิเคชัน เราใช้คลาส Tk

  • window.title() ตั้งชื่อให้กับแอป Window ของเรา

  • window.geometry() กำหนดขนาดของ window และ 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()

ในการรันโค้ดข้างต้น เราจะเห็นหน้าจอผลลัพธ์บางอย่างเช่น −

แบบฟอร์มลงทะเบียนอย่างง่ายโดยใช้ Python Tkinter

ตอนนี้ มาสร้างบางสิ่งจากโลกแห่งความเป็นจริง อาจจะเป็นเครื่องคำนวณดอกเบี้ยเงินกู้ สำหรับสิ่งนั้น เราจำเป็นต้องทราบสองสามรายการ (ตัวแปร) เช่น จำนวนเงินต้น อัตราดอกเบี้ยเงินกู้ (r) ยอดคงเหลือ (Bs) หลังจากชำระเงิน ในการคำนวณสินเชื่อหลังการชำระเงิน เราใช้สูตรในโปรแกรมด้านล่าง −

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

ที่ไหน −

อัตรา =อัตราดอกเบี้ยเหมือน 7.5%

i =อัตรา/100 อัตรารายปีเป็นทศนิยม

r =อัตราระยะเวลา =i/12

Po =เงินต้น

Ps =ยอดคงเหลือหลังจากชำระเงิน

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()

ผลลัพธ์

แบบฟอร์มลงทะเบียนอย่างง่ายโดยใช้ Python Tkinter

จากด้านบน เราจะเห็นว่าผู้ใช้บริการสามารถค้นหายอดเงินสุดท้าย (คงเหลือ) และการชำระเงินรายเดือนโดยป้อนจำนวนเงินกู้ อัตราและหมายเลข ของการชำระเงิน