Tkinter Example

2024. 3. 26. 19:32GUI/tkinter

요약 : 이 튜토리얼에서는 Tkinter 온도 변환기 애플리케이션을 구축하는 방법을 배웁니다.

온도 변환기 애플리케이션 소개

다음은 빌드할 온도 변환기 애플리케이션을 보여줍니다. 애플리케이션은 온도를 화씨에서 섭씨로 변환합니다.

 

 

기본적으로 애플리케이션에는 라벨, entry 및 버튼이 있습니다. 화씨로 온도를 입력하고 Convert 버튼을 클릭하면 텍스트 상자의 값이 화씨에서 섭씨로 변환됩니다.

숫자로 변환할 수 없는 값을 입력하면 프로그램에서 오류가 표시됩니다.

이 애플리케이션을 빌드하려면 다음 단계를 따르십시요.

먼저 다음에서 tkinter 모듈, ttk 하위 모듈 그리고 tkinter.messagebox에서 showerror 함수를 가져옵니다.

In [ ]:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror

둘째, 루트 창을 만들고 해당 구성을 설정합니다.

In [ ]:
# root window
root = tk.Tk()
root.title('Temperature Converter')
root.geometry('300x70')
root.resizable(False, False)

셋째, 온도를 화씨에서 섭씨로 변환하는 함수를 정의합니다.

In [ ]:
def fahrenheit_to_celsius(f):
    """ Convert fahrenheit to celsius
    """
    return (f - 32) * 5/9

넷째, 양식 필드를 보관하는 프레임을 만듭니다.

In [ ]:
frame = ttk.Frame(root)

다섯째, 모든 양식 필드에서 사용할 옵션을 정의합니다.

In [ ]:
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()

모두 함께 넣어보세요.

In [ ]:
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