본문 바로가기
programming/Python

파이썬 tkinter 입력 위젯 문자열 설정하기 Set python entry widget String

by 개코 - 개발과 코딩 2021. 12. 30.

파이썬 tkinter 입력 위젯에 문자열 텍스트를 입력하려면 delete 와 insert 메서드를 사용할 수 있다. delete 메서드는 Entry 위젯의 텍스트를 삭제하고 insert 메서드는 Entry 위젯에 텍스트를 입력할 수 있다. 인덱스를 사용한다는 점에서 다른 프로그램 언어들과 비교할 때 불편한 면이 있다.

파이썬 tkinter 입력 위젯 문자열 설정하기
Set python entry widget String

entry 위젯은 파이썬에서 기본적으로 제공하는 입력위젯이다.

입력위젯에 다른 텍스트 문자열이 자동으로 설정되는 경우도 있다.

사용자에 안내를 위한 문구를 넣는다던지

사용자가 원하는 결과 문자열을 자동으로 넣는다던지

상황은 많다.

entry 위젯은 set 메서드가 없다.

( 다들 없다고 하는 것인지. 본인이 해석을 잘 못한 것인지 모르겠지만 말이다.)

그렇기에 entry 위젯에서 제공하는 delete 메서드와 insert 를 사용하면 된다.

Entry 위젯 delete insert 메서드

파이썬 tkinter의 입력 위젯인 entry 에는 delete와 insert 메서드를 제공한다.

delete 메서드는 entry 위젯에 설정된 문자열을 삭제한다.

insert 메서드는 entry 위젯에 문자열을 추가한다.

특이한 점은 인덱스가 필요하다는 것이다.

Entry.delete(시작인덱스번호, [마지막인덱스번호])

Entry.insert(시작인덱스번호, 문자열)

코드 만들기

위의 코드를 기준으로 파이썬 예제를 만들어 본다.

먼저 윈도우 창을 만들고 2개의 Entry와 2개의 버튼을 만든다.

각각 하나는 Get 을 위해서, 다른 하나는 Set 을 위해서 만들어 준다.

아래의 이미지처럼 만들것이다.

#----- 메인

# 윈도우 창 생성
vWindow = Tk()

# 입력 위젯
wgEntryGet = Entry(vWindow) # 윈도우창에 입력 위젯 설정
wgEntryGet.pack() # 윈도우창에 입력 위젯 붙이기

# 버튼 위젯 
wgButtonGet = Button(vWindow)
wgButtonGet.config(text="확인")
wgButtonGet.config(command=fnGetEntText)
wgButtonGet.pack()

# 입력 위젯
wgEntrySet = Entry(vWindow)
wgEntrySet.insert(0, "재설정된 문자열")
wgEntrySet.pack()

wgButtonSet = Button(vWindow)
wgButtonSet.config(text="문자열설정")
wgButtonSet.config(command=fnSetEntText)
wgButtonSet.pack()

# 윈도우 창 실행
vWindow.mainloop()

#----------

이제 함수 2개를 만들 것이다.

하나는 Entry 입력창에 입력된 문자열을 알림창으로 표시할 것이다.

다른 하나는 Entry 입력창에 문자열을 입력하는 용도이다.

#----- 함수

def fnGetEntText() :
    vText = wgEntryGet.get() # 내용가져오기
    print(vText)
    msgbox.showinfo("메세지창", vText);
    
def fnSetEntText() :
    vText = wgEntrySet.get() # 내용가져오기
    wgEntryGet.delete(0, 'end')
    wgEntryGet.insert(0, vText)

전체 코드 보기

위의 코드를 한번 훓어 봐다면 어려운 것은 없을 것이다.

이젠 전체 코드를 보고 결과화면을 살펴보자.

#----- import 모듈
import tkinter.messagebox as msgbox
from tkinter import *

#----- 함수

def fnGetEntText() :
    vText = wgEntryGet.get() # 내용가져오기
    print(vText)
    msgbox.showinfo("메세지창", vText);
    
def fnSetEntText() :
    vText = wgEntrySet.get() # 내용가져오기
    wgEntryGet.delete(0, 'end')
    wgEntryGet.insert(0, vText)

#----- 메인

# 윈도우 창 생성
vWindow = Tk()

# 입력 위젯
wgEntryGet = Entry(vWindow) # 윈도우창에 입력 위젯 설정
wgEntryGet.pack() # 윈도우창에 입력 위젯 붙이기

# 버튼 위젯 
wgButtonGet = Button(vWindow)
wgButtonGet.config(text="확인")
wgButtonGet.config(command=fnGetEntText)
wgButtonGet.pack()

# 입력 위젯
wgEntrySet = Entry(vWindow)
wgEntrySet.insert(0, "재설정된 문자열")
wgEntrySet.pack()

wgButtonSet = Button(vWindow)
wgButtonSet.config(text="문자열설정")
wgButtonSet.config(command=fnSetEntText)
wgButtonSet.pack()

# 윈도우 창 실행
vWindow.mainloop()

#----------

이제 결과화면을 보자.

확인 버튼을 클릭하면 원본문자열을 메세지창에 보여준다.

문자열설정 버튼을 클릭하면 원본문자열의 Entry 입력 위젯에 설정이 되는 것을 볼 수 있다.

반응형

댓글