버튼으로 Tkinter Entry 위젯의 텍스트를 설정하는 방법
버튼을 클릭하여 Tkinter Entry 위젯의 텍스트를 설정하거나 변경하는 두 가지 방법이 있습니다.
- Tkinter
delete
및insert
메소드 - Tkinter
StringVar
메소드
Tkinter delete
및 insert
방법으로 Entry
의 내용을 설정
Tkinter Entry
위젯에는 Entry
의 컨텐츠를 설정하기위한 전용 set
메소드가 없습니다. 컨텐츠를 완전히 변경해야하는 경우 먼저 기존 컨텐츠를 삭제 한 다음 새 컨텐츠를 삽입해야합니다.
delete
및 insert
메소드를 사용하여 Entry
에 텍스트를 설정하는 완전한 작업 코드
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textExample.delete(0, "end")
textExample.insert(0, text)
textExample = tk.Entry(root)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textExample.delete(0, "end")
Entry
의 delete
메소드는 Entry
에서 지정된 문자 범위를 삭제합니다.
0
은 첫 번째 문자이고"end"
는 Entry
위젯에서 컨텐츠의 마지막 문자입니다. 따라서 delete(0, "end")
는 Text
상자 안의 모든 내용을 삭제합니다.
textExample.insert(0, text)
insert
메소드는 텍스트를 지정된 위치에 삽입합니다. 위의 코드에서 시작 부분에 ‘텍스트’를 삽입합니다.
Tkinter Entry
위젯의 컨텐츠를 설정하는 Tkinter StringVar
메소드
Tkinter Entry
위젯의 컨텐츠가 StringVar
오브젝트와 연관된 경우,StringVar
값이 업데이트 될 때마다 Tkinter Entry
위젯의 컨텐츠를 자동으로 변경할 수 있습니다.
StringVar
객체를 사용하여 Entry
에 텍스트를 설정하는 완전한 작업 코드
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textEntry.set(text)
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textEntry
는 StringVar
객체이며 텍스트 내용 또는 다른 말로 Entry
위젯의 textvariable
옵션과 연관되어 있습니다.
textEntry.set(text)
textEntry
가 새로운 값 text
를 갖도록 갱신되면,textvariable
과 연관된 위젯이 자동으로 갱신됩니다.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook