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() เมื่อเรียกใช้โค้ดด้านบนนี้ คุณจะเห็นผลลัพธ์ดังนี้ −

มาทำความเข้าใจโค้ดด้านบนกัน −
-
อันดับแรก เรานำเข้าโมดูลทั้งหมดที่เราต้องการ เรานำเข้า 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() ในการรันโค้ดข้างต้น เราจะเห็นหน้าจอผลลัพธ์บางอย่างเช่น −

ตอนนี้ มาสร้างบางสิ่งจากโลกแห่งความเป็นจริง อาจจะเป็นเครื่องคำนวณดอกเบี้ยเงินกู้ สำหรับสิ่งนั้น เราจำเป็นต้องทราบสองสามรายการ (ตัวแปร) เช่น จำนวนเงินต้น อัตราดอกเบี้ยเงินกู้ (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() ผลลัพธ์

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