Tkinter Entry

2024. 2. 20. 18:57GUI/tkinter

요약 : 이 튜토리얼에서는 Tkinter Entry 위젯을 사용하여 텍스트 상자를 만드는 방법을 배웁니다.

Tkinter Entry 위젯 소개

Entry 위젯을 사용하면 한 줄 텍스트를 입력할 수 있습니다. Tkinter에서는 텍스트 상자를 만들려면 Entry 위젯을 사용합니다.

textbox = ttk.Entry(master, **options)

이 구문에서는:

  • master는 상위 프레임 또는 창 입니다. 위젯을 배치할 위치입니다.
  • options는 Entry 위젯을 구성하는 데 사용되는 하나 이상의 키워드 인수 입니다.

여러 줄의 텍스트를 입력하려면 Text위젯을 사용할 수 있습니다.

Entry 위젯의 현재 텍스트를 문자열로 가져오려면 get() 메소드를 사용합니다.

textbox.get()

일반적으로 다음과 같이 텍스트 상자의 현재 값을 StringVar 개체와 연결합니다.

text = tk.StringVar()
textbox = ttk.Entry(root, textvariable=text)

이 구문에서는:

  • 먼저 StringVar 클래스의 새 인스턴스를 만듭니다. 텍스트는 문자열 변수의 값 보유자가 됩니다.
  • 둘째, Entry 위젯의 textvariable에 텍스트 변수를 할당합니다.

이 경우 StringVar()개체의 get() 메서드를 호출하여 Entry 위젯의 현재 값을 가져올 수 있습니다.

text.get()

Tkinter Entry 위젯에 포커스 설정하기

더 나은 사용자 경험을 제공하기 위해, 창이 표시된 후 첫 번째 Entry 위젯으로 포커스를 이동할 수 있습니다. Entry 위젯에 포커스가 있으면, 사용자 입력을 받아들일 준비가 된 것입니다.

이를 수행하려면 다음과 같은 Entry 위젯의 focus() 메소드를 사용하십시오.

textbox.focus()

Tkinter 비밀번호 항목 표시

Entry 위젯에서 비밀번호와 같은 민감한 정보를 숨기려면 이 show 옵션을 사용할 수 있습니다.

다음은 비밀번호 항목을 생성합니다. 비밀번호를 입력하면 실제 문자가 표시되지 않고 show 옵션에 지정된 별표(*)가 표시됩니다.

password = tk.StringVar()
password_entry = ttk.Entry(
     root,
     textvariable=password,
     show='*'
)
password_entry.pack()

Tkinter Entry 위젯 예

다음 프로그램은 Entry위젯을 사용하여 로그인 양식을 만드는 방법을 보여줍니다.

In [7]:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo

# root window
root = tk.Tk()
root.geometry("300x150")
root.resizable(False, False)
root.title('Sign In')

# store email address and password
email = tk.StringVar()
password = tk.StringVar()


def login_clicked():
    """ callback when the login button clicked
    """
    msg = f'You entered email: {email.get()} and password: {password.get()}'
    showinfo(
        title='Information',
        message=msg
    )


# Sign in frame
signin = ttk.Frame(root)
signin.pack(padx=10, pady=10, fill='x', expand=True)


# email
email_label = ttk.Label(signin, text="Email Address:")
email_label.pack(fill='x', expand=True)

email_entry = ttk.Entry(signin, textvariable=email)
email_entry.pack(fill='x', expand=True)
email_entry.focus()

# password
password_label = ttk.Label(signin, text="Password:")
password_label.pack(fill='x', expand=True)

password_entry = ttk.Entry(signin, textvariable=password, show="*")
password_entry.pack(fill='x', expand=True)

# login button
login_button = ttk.Button(signin, text="Login", command=login_clicked)
login_button.pack(fill='x', expand=True, pady=10)


root.mainloop()

Output:

 

작동 방식.

먼저 이메일 및 비밀번호 Entry 위젯의 현재 텍스트를 보관할 두 개의 문자열 변수를 만듭니다.

# store email address and password
email = tk.StringVar()
password = tk.StringVar()

둘째, 이메일 Entry 위젯을 생성하고 이를 email 변수와 연결합니다.

email_entry.focus()

다음 세트는 email항목에 중점을 둡니다.

email_entry.focus()

셋째, 비밀번호 entry 위젯을 생성하고, 해당 textvariable에 비밀번호 변수를 할당합니다.

password_entry = ttk.Entry(signin, textvariable=password, show="*")

마지막으로 로그인 버튼을 클릭하면 입력한 이메일과 비밀번호를 보여주는 메시지 박스가 출력됩니다.

요약

  • ttk.Entry 위젯을 사용하여 텍스트 상자를 만듭니다.
  • StringVar() 클래스의 인스턴스를 사용하여 Entry 위젯의 현재 텍스트를 문자열 변수와 연결합니다.
  • 이 show 옵션을 사용하여 비밀번호 항목을 생성하십시오.

'GUI > tkinter' 카테고리의 다른 글

Tkinter Grid  (0) 2024.02.23
Tkinter Pack  (0) 2024.02.21
Tkinter 위젯  (0) 2024.02.20
Tkinter 라벨  (1) 2024.02.18
Tkinter 명령 바인딩  (0) 2024.02.17