본문 바로가기

코딩/파이썬 tkinter

[Tkinter] 18장. 위젯의 winfo_children 메서드

위젯이 상속하는 Misc 클래스의 winfo_children 메서드는 해당 위젯에 포함되어 있는 위젯 또는 프레임 리스트를 반환합니다.

 

 

아래는 LabelFrame 내 5개 Lable의 text와 foreground 속성값을 winfo_children 메서드를 이용해 변경하는 코드입니다.

 

# python 3.8.6

import tkinter as tk
import tkinter.ttk as ttk


class MainWin(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.setting_win()
        self.setting_win_widgets()

    def setting_win(self):
        self.title('tkinter (things-studio.tistory.com)')
        self.geometry('480x320+200+200')
        self.minsize(200, 200)

    # start -------------------------------------------------------------------
    def setting_win_widgets(self):
        labelframe = ttk.Labelframe(self, text='ttk.LabelFrame', labelanchor='ne')
        labelframe.grid(padx=10, pady=10)

        for i in range(1, 6):
            if i % 2:
                ttk.Label(labelframe, text='Label ' + str(i)).grid(padx=10, pady=10)
            else:
                ttk.Label(labelframe, text='Label ' + str(i)).grid(padx=10)

        for child in labelframe.winfo_children():
            child.configure(text=child['text'] + ', blue')
            child.configure(foreground='blue')
    # end ---------------------------------------------------------------------


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