2024. 3. 26. 19:32ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 Tkinter 온도 변환기 애플리케이션을 구축하는 방법을 배웁니다.
온도 변환기 애플리케이션 소개
다음은 빌드할 온도 변환기 애플리케이션을 보여줍니다. 애플리케이션은 온도를 화씨에서 섭씨로 변환합니다.

기본적으로 애플리케이션에는 라벨, entry 및 버튼이 있습니다. 화씨로 온도를 입력하고 Convert 버튼을 클릭하면 텍스트 상자의 값이 화씨에서 섭씨로 변환됩니다.
숫자로 변환할 수 없는 값을 입력하면 프로그램에서 오류가 표시됩니다.
이 애플리케이션을 빌드하려면 다음 단계를 따르십시요.
먼저 다음에서 tkinter 모듈, ttk 하위 모듈 그리고 tkinter.messagebox에서 showerror 함수를 가져옵니다.
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
둘째, 루트 창을 만들고 해당 구성을 설정합니다.
# root window
root = tk.Tk()
root.title('Temperature Converter')
root.geometry('300x70')
root.resizable(False, False)
셋째, 온도를 화씨에서 섭씨로 변환하는 함수를 정의합니다.
def fahrenheit_to_celsius(f):
""" Convert fahrenheit to celsius
"""
return (f - 32) * 5/9
넷째, 양식 필드를 보관하는 프레임을 만듭니다.
frame = ttk.Frame(root)
다섯째, 모든 양식 필드에서 사용할 옵션을 정의합니다.
options = {'padx': 5, 'pady': 5}
여섯째, 라벨, 엔트리, 버튼을 정의합니다. Convert 버튼 을 클릭하면 라벨에 결과가 표시됩니다.
# temperature label
temperature_label = ttk.Label(frame, text='Fahrenheit')
temperature_label.grid(column=0, row=0, sticky='W', **options)
# temperature entry
temperature_entry = ttk.Entry(frame, textvariable=temperature)
temperature_entry.grid(column=1, row=0, **options)
temperature_entry.focus()
# convert button
convert_button = ttk.Button(frame, text='Convert')
convert_button.grid(column=2, row=0, sticky='W', **options)
convert_button.configure(command=convert_button_clicked)
# result label
result_label = ttk.Label(frame)
result_label.grid(row=1, columnspan=3, **options)
마지막으로 루트 창에 프레임을 배치하고 mainloop()메서드를 실행합니다.
frame.grid(padx=10, pady=10)
root.mainloop()
모두 함께 넣어보세요.
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
# root window
root = tk.Tk()
root.title('Temperature Converter')
root.geometry('300x70')
root.resizable(False, False)
def fahrenheit_to_celsius(f):
""" Convert fahrenheit to celsius
"""
return (f - 32) * 5/9
# frame
frame = ttk.Frame(root)
# field options
options = {'padx': 5, 'pady': 5}
# temperature label
temperature_label = ttk.Label(frame, text='Fahrenheit')
temperature_label.grid(column=0, row=0, sticky='W', **options)
# temperature entry
temperature = tk.StringVar()
temperature_entry = ttk.Entry(frame, textvariable=temperature)
temperature_entry.grid(column=1, row=0, **options)
temperature_entry.focus()Tkinter Themes
# convert button
def convert_button_clicked():
""" Handle convert button click event
"""
try:
f = float(temperature.get())
c = fahrenheit_to_celsius(f)
result = f'{f} Fahrenheit = {c:.2f} Celsius'
result_label.config(text=result)
except ValueError as error:
showerror(title='Error', message=error)
convert_button = ttk.Button(frame, text='Convert')
convert_button.grid(column=2, row=0, sticky='W', **options)
convert_button.configure(command=convert_button_clicked)
# result label
result_label = ttk.Label(frame)
result_label.grid(row=1, columnspan=3, **options)
# add padding to the frame and show it
frame.grid(padx=10, pady=10)
# start the app
root.mainloop()
이 튜토리얼에서는 온도를 화씨에서 섭씨로 변환하는 간단한 Tkinter 애플리케이션을 개발하는 방법을 배웠습니다.
'GUI > tkinter' 카테고리의 다른 글
Ttk Styles (0) | 2024.03.28 |
---|---|
Tkinter Themes (0) | 2024.03.27 |
Tkinter OptionMenu (0) | 2024.03.26 |
Tkinter Menubutton (0) | 2024.03.24 |
Tkinter Menu (0) | 2024.03.23 |