tkinter 13 LabelFrame

References

简介

LabelFrame是Frame组件的变体,其实就是给Frame组件加了个Lable组件做标题。默认情况下,LabelFrame会在其子组件的周围绘制一个边框以及一个标题。

一般,当你想要将一些相关的组件分为一组的时候,可以使用LabelFrame组件,比如一系列 Radiobutton(单选按钮)组件。

代码例子

    def _gui_int(self):
        group = tk.LabelFrame(self.window, 
                              text="Where are you from:", 
                              fg='red',
                              bd=20, 
                              relief=tk.RIDGE)  # bg='grey'
        group.pack(padx=10, pady=10)
        self.radio_lst = ['China', 'USA', 'Canada', 'UK']
        self.radio_var = tk.IntVar()
        self.radio_var.set(1)
        for index in range(len(self.radio_lst)):
            tk.Radiobutton(group, 
                           text=self.radio_lst[index], 
                           variable=self.radio_var, value=index,
                           command=self.radio_call).pack(anchor='w')
        self.text_var = tk.StringVar()
        self.text_var.set(self.radio_lst[self.radio_var.get()])
        show_frame = tk.Frame(group)
        show_frame.pack(anchor='center')
        tk.Label(show_frame, 
                 textvariable=self.radio_var, 
                 bg='red', 
                 fg='white').grid(row=0, column=0)
        tk.Label(show_frame, 
                 textvariable=self.text_var, 
                 bg='black', 
                 fg='white').grid(row=0, column=1)

    def radio_call(self):
        self.text_var.set(self.radio_lst[self.radio_var.get()])
Table of Contents