
안녕하세요~
파이썬을 공부하는 가정의학과 전문의 닥터 배도사입니다.
오늘은 파이썬 GUI 프로그래밍인 tkinter의 entry와 button 기능을 사용해 보겠습니다.
entry는 window 창에 위치하는 빈칸을 말하는데요.
이 빈칸(entry)에 텍스트를 입력하여 입력한 텍스트가 출력되는 간단한 프로그램을 만들어 보겠습니다.
"사과, 딸기, 배 중에 하나를 고르세요."라는 라벨을 만들고 빈칸(entry)에 "사과"를 입력하고 선택"이라는 버튼을 누르면 "사과를 선택하셨습니다."라는 결과물이 출력되는 간단한 프로그램을 만들어 보겠습니다.
전체 코드)
# 엔트리에 과일이름을 입력하고 클릭 버튼을 누르면
# "(입력한 과일) 를 선택하셨습니다."라는 텍스트가
# 출력되도록 하는 함수 정의
def clickMe():
lb2.configure(text = id.get() + "를 선택하셨습니다.")
# 과일을 선택하라는 라벨 생성
lb1 = ttk.Label(win, text="사과, 딸기, 배 중에 하나를 고르세요")
lb1.grid(column=0, row=0)
# 원하는 과일을 입력하는 Entry 생성
id = tk.StringVar()
entry1 = ttk.Entry(win, textvariable = id)
entry1.grid(column=0, row=1)
# "클릭"이라는 함수를 만들고
# 클릭하면 clikcMe라는 함수가 실행하도록 설정
btn1 = ttk.Button(win, text="선택", command=clickMe)
btn1.grid(column=1, row=1)
# clickMe 함수의 실행 결과가 출력되는 라벨을
# lb2라는 이름으로 생성.
lb2 = ttk.Label(win, text="")
lb2.grid(column=0, row=2)
win.mainloop()
앞서 하고자 했던 프로그램의 전체적인 코드는 위의 사진과 같습니다.
그러면 지금부터 코드의 내용을 자세히 알아보겠습니다.
import tkinter as tk
from tkinter import ttk
# 윈도우 인스턴스 생성
win = tk.Tk()
win.title("파이썬 Entry")
win.geometry("600x400")
win = tk.Tk()
윈도우 창을 생성해 줍니다.
win.title("파이썬 Entry")
윈도우 창의 타이틀을 "파이썬 Entry"라고 설정해 줍니다.
win.geometry("600x400")
윈도우 창의 크기를 설정해 줍니다.
# 엔트리에 과일이름을 입력하고 클릭 버튼을 누르면
# "(입력한 과일) 를 선택하셨습니다."라는 텍스트가
# 출력되도록 하는 함수 정의
def clickMe():
lb2.configure(text = id.get() + "를 선택하셨습니다.")
def clickMe():
lb2.configure(text = id.get() + "를 선택하셨습니다.")
clikcMe라는 함수를 정의해 줍니다.
이 함수는 버튼을 클릭하면
lb2라는 라벨에 entry 입력값인 id.get() + "를 선택하셨습니다." 이 출력이 되게 합니다.
# 과일을 선택하라는 라벨 생성
lb1 = ttk.Label(win, text="사과, 딸기, 배 중에 하나를 고르세요")
lb1.grid(column=0, row=0)
lb1 = ttk.Label(win, text="사과, 딸기, 배 중에 하나를 고르세요")
"사과, 딸기, 배 중에 하나를 고르세요."라는 텍스트가 있는 label을 생성하여 lb1에 할당합니다.
lb1.grid(column=0, row=0)
lb1을 0열, 0행에 위치시켜 줍니다.
# 원하는 과일을 입력하는 Entry 생성
id = tk.StringVar()
entry1 = ttk.Entry(win, textvariable = id)
entry1.grid(column=0, row=1)
월하는 과일을 입력하는 Entry를 생성합니다.
entry1 = ttk.Entry(win, textvariable = id)
엔트리를 생성하여 entry1이라는 변수에 할당합니다.
그리고 entry1에 입력할 변수를 id라고 설정합니다.
entry1.grid(column=0, row=1)
entry1을 0열, 1행에 위치시켜 줍니다.
id = tk.StringVar()
entry1에 입력할 변수인 id의 속석을 str(문자)로 설정해 줍니다.
# "클릭"이라는 함수를 만들고
# 클릭하면 clikcMe라는 함수가 실행하도록 설정
btn1 = ttk.Button(win, text="선택", command=clickMe)
btn1.grid(column=1, row=1)
btn1 = ttk.Button(win, text="선택", command=clickMe)
"선택"이라는 버튼을 만들고 btn1에 할당합니다.
command 명령어를 이용하여 버튼을 클릭하면
앞서 정의한 clickMe라는 함수가 작동하게 합니다.
btn1.grid(column=1, row=1)
btn1을 1열, 1행에 위치 시켜 줍니다.
# clickMe 함수의 실행 결과가 출력되는 라벨을
# lb2라는 이름으로 생성.
lb2 = ttk.Label(win, text="")
lb2.grid(column=0, row=2)
win.mainloop()
lb2 = ttk.Label(win, text="")
clikcMe의 실행 결과가 출력될 비어있는 라벨을 생성하여 lb2에 할당합니다.
lb2.grid(column=0, row=2)
lb2를 0열, 2행에 위치 시켜 줍니다.
자~ 코드가 다 완성이 되었습니다.
그럼 한번 실행을 해 볼까요?
결과)

실행 영상)
동영상과 사진에 서 보는 바와 같이 entry(빈칸)에 사과를 입력하고 선택이라는 버튼을 누르면 밑에 "사과를 선택하셨습니다."라는 텍스트가 출력되는 것을 볼 수 있습니다.
간단한 프로그램이지만 하나씩 만들어가는 재미와 보람이 있습니다. 앞으로도 계속 공부를 해야겠습니다!
'tkinter' 카테고리의 다른 글
[파이썬 tkinter] Radiobutton 사용하기 (0) | 2021.12.20 |
---|---|
[파이썬 tkinter] checkbutton 사용하기 (0) | 2021.12.20 |
파이썬을 이용하여 독학으로 만들어본 우울증 검사(PHQ-2) 프로그램 (2) | 2021.12.14 |
[파이썬 GUI] BMI 계산기 만들기(feat. tkinter) (0) | 2021.12.13 |
파이썬 GUI - label과 button 기능 사용하기 (0) | 2021.12.10 |