1. 程式人生 > 實用技巧 >tkinter學習-- 五、Frame與Labelframe

tkinter學習-- 五、Frame與Labelframe

frame

說明:螢幕上建立一塊矩形區域,多作為容器來佈局窗體

frame(根物件,[屬性列表])

class Frame_tk(Tk):
    def __init__(self):
        self.windows=Tk()
        self.windows.geometry('300x200')
        self.show_windows()
        self.windows.mainloop()
    def show_windows(self):
        self.frame1=Frame(self.windows,bg='red')
        self.frame1.place(relx=0.2, rely=0.2, relwidth=0.3, relheight=0.6)
        self.frame2=Frame(self.windows,bg='yellow')
        self.frame2.place(relx=0.5, rely=0.2, relwidth=0.3, relheight=0.6)

#tk=Frame_tk() #顯示簡單色塊這裡用place更易顯示
class Frame_tk2(Tk):
    def __init__(self):
        self.windows=Tk()
        self.windows.geometry('528x322')
        self.show_windows()
        self.windows.mainloop()
    def show_windows(self):
        self.frame1=Frame(self.windows,bg='red')
        self.frame1.place(relx=0.2, rely=0.2, relwidth=0.3, relheight=0.6)

        self.label_1 = Label(self.frame1, text="富強")
        self.label_1.place(relx=0.2, rely=0.2)

        self.label_2 = Label(self.frame1, text="民主")
        self.label_2.place(relx=0.6, rely=0.2)

        self.label_3 = Label(self.frame1, text="文明")
        self.label_3.place(relx=0.2, rely=0.6)

        self.label_4 = Label(self.frame1, text="和諧")
        self.label_4.place(relx=0.6, rely=0.6)


        self.frame2=Frame(self.windows,bg='yellow')
        self.frame2.place(relx=0.5, rely=0.2, relwidth=0.3, relheight=0.6)

        self.label_1 = Label(self.frame2, text="自由")
        self.label_1.place(relx=0.2, rely=0.2)

        self.label_2 = Label(self.frame2, text="平等")
        self.label_2.place(relx=0.6, rely=0.2)

        self.label_3 = Label(self.frame2, text="公正")
        self.label_3.place(relx=0.2, rely=0.6)

        self.label_4 = Label(self.frame2, text="法治")
        self.label_4.place(relx=0.6, rely=0.6)

app=Frame_tk2()

 表示顯示色塊(圖1)也可以在主螢幕的基礎上新增分螢幕以便進行操作(圖2)

LabelFrame(注意大小寫)

LabelFrame與Frame屬性選項一樣。

Labelframe有兩點不同於Frame:

1.Labelframe預設的邊框使tk.GROOVE,relief=tk.GROOVE

2.Labelframe還可以再邊框寫文字,即:text="文字"

特性:邊框文字位置:

預設是:labelanchor="wn"

###

STANDARD OPTIONS

borderwidth, cursor, font, foreground,
highlightbackground, highlightcolor,
highlightthickness, padx, pady, relief,
takefocus, text

WIDGET-SPECIFIC OPTIONS

background, class, colormap, container,
height, labelanchor
, labelwidget,
visual, width
"""

class Lableframe_tk2(Tk):
    def __init__(self):
        self.windows=Tk()
        self.windows.geometry('528x322')
        self.show_windows()
        self.windows.mainloop()
    def show_windows(self):
        self.frame1=LabelFrame(self.windows,text='社會主義核心價值觀',labelanchor="n")
        self.frame1.place(relx=0.2, rely=0.2, relwidth=0.3, relheight=0.6)

        self.label_1 = Label(self.frame1, text="富強")
        self.label_1.place(relx=0.2, rely=0.2)

        self.label_2 = Label(self.frame1, text="民主")
        self.label_2.place(relx=0.6, rely=0.2)

        self.label_3 = Label(self.frame1, text="文明")
        self.label_3.place(relx=0.2, rely=0.6)

        self.label_4 = Label(self.frame1, text="和諧")
        self.label_4.place(relx=0.6, rely=0.6)


        self.frame2=LabelFrame(self.windows,text='社會主義核心價值體系',labelanchor="n")
        self.frame2.place(relx=0.5, rely=0.2, relwidth=0.3, relheight=0.6)

        self.label_1 = Label(self.frame2, text="自由")
        self.label_1.place(relx=0.2, rely=0.2)

        self.label_2 = Label(self.frame2, text="平等")
        self.label_2.place(relx=0.6, rely=0.2)

        self.label_3 = Label(self.frame2, text="公正")
        self.label_3.place(relx=0.2, rely=0.6)

        self.label_4 = Label(self.frame2, text="法治")
        self.label_4.place(relx=0.6, rely=0.6)

app=Lableframe_tk2()