본문 바로가기

tkinter

[파이썬 tkinter] entry, button 기능 사용하기

반응형

파이썬 TKinter entry, button 기능 사용

 

 

안녕하세요~

 

파이썬을 공부하는 가정의학과 전문의 닥터 배도사입니다. 

 

오늘은 파이썬 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, button 실행 결과

 

실행 영상)

파이썬, entry, button 실행 결과

 

 

동영상과 사진에 서 보는 바와 같이 entry(빈칸)에 사과를 입력하고 선택이라는 버튼을 누르면 밑에 "사과를 선택하셨습니다."라는 텍스트가 출력되는 것을 볼 수 있습니다. 

 

간단한 프로그램이지만  하나씩 만들어가는 재미와 보람이 있습니다. 앞으로도 계속 공부를 해야겠습니다!

반응형