본문 바로가기

코딩/파이썬 tkinter

[Tkinter] 14장. 위젯의 focus() 메서드

ttk.Entry 위젯이 상속하는 클래스는 아래와 같습니다.

 

 

위의 이미지에서 확인할 수 있듯 ttk.Entry는 Misc 클래스를 상속하고 있으며, 이로 인해 Entry와 같이 사용자의 입력을 받는데 사용되는 위젯들엔 focus() 메서드를 사용할 수 있습니다.

 

예로 애플리케이션 실행 후 2번 Entry에 원하는 문자를 입력하려면 마우스나 Tab으로 2번 Entry를 선택해야 합니다. 

 

focus() 미사용

 

하지만 2번 Entry에 대하여 focus() 메서드를 호출해 주면, 애플리케이션 실행 시 자동으로 2번 Entry가 선택됩니다. 아래 이미지에서 2번 Entry에 커서가 위치해 있고 가장자리가 파란색으로 보이네요.

 

focus() 사용

 

import tkinter as tk
import tkinter.ttk as ttk


class MainWin(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.win_settings()
        self.tkinter_ttk_basics()

    def win_settings(self):
        self.title('tkinter / ttk')
        self.geometry('480x320+200+200')
        self.minsize(200, 200)

    # -------------------------------------------------------------------------
    def tkinter_ttk_basics(self):
        self.entry1_var = tk.StringVar(value='tk.Entry (1)')
        self.entry1 = tk.Entry(self, textvariable=self.entry1_var)
        self.entry1.grid(padx=10, pady=10)

        self.entry2_var = tk.StringVar()
        self.entry2_var.set('ttk.Entry (2)')
        self.entry2 = ttk.Entry(self, textvariable=self.entry2_var)
        self.entry2.grid(padx=10)
		
        # focus() method
        self.entry2.focus()
    # -------------------------------------------------------------------------


if __name__ == '__main__':
    mainWin = MainWin()
    mainWin.mainloop()

 

'코딩 > 파이썬 tkinter' 카테고리의 다른 글

[Tkinter] 16장. Radiobutton  (0) 2020.11.15
[Tkinter] 15장. Checkbutton  (0) 2020.11.15
[Tkinter] 13장. Entry  (0) 2020.11.12
[Tkinter] 12장. Button  (0) 2020.11.11
[Tkinter] 11장. Label (ttk) 2단계  (0) 2020.11.08