2024. 2. 20. 18:57ㆍGUI/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위젯을 사용하여 로그인 양식을 만드는 방법을 보여줍니다.
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 |