Tkinter là một thư viện python để phát triển GUI (Giao diện người dùng đồ họa). Chúng tôi sử dụng thư viện tkinter để tạo ứng dụng UI (Giao diện người dùng), để tạo cửa sổ và tất cả các giao diện người dùng đồ họa khác.
Nếu bạn đang sử dụng python 3.x (được khuyến nghị), Tkinter sẽ đi kèm với Python như một gói tiêu chuẩn, vì vậy chúng tôi không cần cài đặt bất kỳ thứ gì để sử dụng nó.
Trước khi tạo biểu mẫu đăng ký trong Tkinter, trước tiên hãy tạo một ứng dụng GUI đơn giản trong Tkinter.
Tạo một ứng dụng GUI đơn giản
Dưới đây là chương trình để tạo một cửa sổ bằng cách nhập Tkinter và đặt tiêu đề của nó -
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()
Khi chạy các dòng mã trên, bạn sẽ thấy đầu ra giống như -
Hãy hiểu những dòng mã trên -
-
Trước tiên, chúng tôi nhập tất cả các mô-đun chúng tôi cần, chúng tôi đã nhập ttk và * (tất cả) từ thư viện tkinter.
-
Để tạo cửa sổ chính của ứng dụng, chúng tôi sử dụng lớp Tk.
-
window.title (), đặt tiêu đề cho ứng dụng Window của chúng tôi.
-
window.geometry (), đặt kích thước của cửa sổ và window.configure (), đặt màu nền của nó.
-
ttk.Button () tạo một nút.
-
ttk.Button (window, text ="Hello, Tkinter"). grid () - window có nghĩa là Tk để nó hiển thị trong cửa sổ chúng ta đã tạo, text- sẽ hiển thị văn bản trong cửa sổ và lưới sẽ làm cho nó có lưới.
-
Window.mainloop (), hàm này gọi vòng lặp vô tận của cửa sổ, vì vậy sẽ vẫn mở cho đến khi người dùng đóng nó.
Hãy thử mở rộng ví dụ trước của chúng ta, bằng cách thêm một số Nhãn (nhãn là một tiện ích con đơn giản hiển thị một đoạn văn bản hoặc hình ảnh) và nút (nút thường được ánh xạ trực tiếp vào một hành động của người dùng, nghĩa là khi nhấp vào một nút, một số hành động nên xảy ra) trong mã.
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()
Khi chạy đoạn mã trên, chúng ta sẽ thấy màn hình đầu ra giống như -
Bây giờ chúng ta hãy tạo ra thứ gì đó từ thế giới thực, có thể là một máy tính lãi suất cho vay. Để làm được điều đó, chúng ta cần biết một số mục (biến), chẳng hạn như số tiền gốc, tỷ lệ khoản vay (r), số dư (Bs) sau khi thanh toán. Để tính toán khoản vay sau khi thanh toán, chúng tôi sử dụng công thức trong chương trình dưới đây -
Ps = ((1+r)^s.Bo) – (((1 + r)^s – 1)/ r)*p
Ở đâu -
Tỷ lệ =Tỷ lệ lãi suất như 7,5%
i =tỷ lệ / 100, tỷ lệ hàng năm ở dạng thập phân
r =tỷ lệ chu kỳ =i / 12
Po =Số tiền gốc
Ps =Số dư sau khi thanh toán
s =số lần thanh toán hàng tháng
p =kỳ (hàng tháng) thanh toán
Vì vậy, bên dưới là chương trình tính lãi suất, sẽ hiển thị một cửa sổ bật lên, nơi người dùng có thể đặt giá trị mong muốn (số tiền vay, tỷ lệ, số lần trả góp) và sẽ nhận được số tiền thanh toán hàng tháng và khoản vay còn lại mà anh ta cần phải trả với trợ giúp của thư viện tkinter python.
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()
Đầu ra
Từ phía trên, chúng tôi thấy người dùng có thể tìm số dư cuối cùng (còn lại) và khoản thanh toán hàng tháng bằng cách nhập số tiền vay, tỷ lệ và không. thanh toán.