Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Tkinter를 사용한 간단한 등록 양식

<시간/>

Tkinter는 GUI(Graphical User Interfaces) 개발을 위한 파이썬 라이브러리입니다. 우리는 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()

위의 코드 줄을 실행하면 −

와 같은 출력이 표시됩니다.

Python Tkinter를 사용한 간단한 등록 양식

위의 코드 줄을 이해합시다 -

  • 먼저 필요한 모든 모듈을 가져오고 tkinter 라이브러리에서 ttk 및 *(모두)를 가져왔습니다.

  • 응용 프로그램의 기본 창을 만들기 위해 Tk 클래스를 사용합니다.

  • window.title(), Window 앱에 제목을 지정합니다.

  • window.geometry()는 창의 크기를 설정하고 window.configure()는 배경색을 설정합니다.

  • ttk.Button()은 버튼을 만듭니다.

  • ttk.Button(window, text="Hello, Tkinter").grid() – 창은 Tk를 의미하므로 우리가 만든 창에 표시됩니다. text-는 창에 텍스트를 표시하고 그리드는 그리드.

  • 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 =rate/100, 연간 10진수 비율

r =기간 비율 =i/12

Po =원금

Ps =결제 후 잔액

s =월별 지불 횟수

p =기간(월별) 지불

그래서 아래는 금리계산기 프로그램으로 사용자가 원하는 금액(대출금액, 금리, 할부금)을 설정하고 월납입금액과 대출잔액을 확인할 수 있는 팝업창이 뜨게 됩니다. 파이썬 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를 사용한 간단한 등록 양식

위에서 우리는 사용자가 대출 금액, 이율 및 번호를 입력하여 최종(남은) 잔액과 월별 지불액을 찾을 수 있음을 볼 수 있습니다. 지불.