버튼으로 Tkinter Entry 위젯의 텍스트를 설정하는 방법

Jinku Hu 2023년1월30일
  1. Tkinter deleteinsert 방법으로 Entry 의 내용을 설정
  2. Tkinter Entry 위젯의 컨텐츠를 설정하는 Tkinter StringVar 메소드
버튼으로 Tkinter Entry 위젯의 텍스트를 설정하는 방법

버튼을 클릭하여 Tkinter Entry 위젯의 텍스트를 설정하거나 변경하는 두 가지 방법이 있습니다.

  1. Tkinter deleteinsert 메소드
  2. Tkinter StringVar 메소드

Tkinter deleteinsert 방법으로 Entry 의 내용을 설정

Tkinter Entry 위젯에는 Entry 의 컨텐츠를 설정하기위한 전용 set 메소드가 없습니다. 컨텐츠를 완전히 변경해야하는 경우 먼저 기존 컨텐츠를 삭제 한 다음 새 컨텐츠를 삽입해야합니다.

deleteinsert 메소드를 사용하여 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()

Tkinter Tkinter Entry_delete 의 내용 설정 및 삽입 방법

textExample.delete(0, "end")

Entrydelete 메소드는 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)

textEntryStringVar 객체이며 텍스트 내용 또는 다른 말로 Entry 위젯의 textvariable 옵션과 연관되어 있습니다.

textEntry.set(text)

textEntry 가 새로운 값 text 를 갖도록 갱신되면,textvariable 과 연관된 위젯이 자동으로 갱신됩니다.

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

관련 문장 - Tkinter Entry