【Python GUI tkinterサンプル】ttk.LabelFrame(ラベルフレーム)のフレームサイズを固定する

<tkinterトップページに戻る>

使用するメソッド

propagate(bool)

boolはTrue,Falseもしくは0,1

使い方

propagate(True)がデフォルトで指定してあるため中のWidgetのサイズに影響されてしまう。

中のWidgetに関係なく指定したサイズで固定するためにはpropagate(False)を使用する。

LabelFrame_propagate

同じWidget群を含んだLabelFrameにpropagateを指定したときのSample画像

LabelFrame_propagate_real

 

サンプルコード

from tkinter import *
import tkinter.ttk as ttk

#propagate-True
class LabelFrameSamplePropagateTrue(ttk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.create_widgets()
        self.pack()

    def create_widgets(self):
        labelFrame  = ttk.LabelFrame(self,text="propagate-True",labelanchor="nw",width=280,height=180)
        labelFrame.pack()
        labelFrame.propagate(True)

        # child-widget
        label = ttk.Label(labelFrame, text ="propagate true")
        label.pack()
        button = ttk.Button(labelFrame, text ="True")
        button.pack()

# propagate-False
class LabelFrameSamplePropagateFalse(ttk.Frame):
    def __init__(self, master):
        super().__init__(master)
        self.create_widgets()
        self.pack()

    def create_widgets(self):
        labelFrame  = ttk.LabelFrame(self,text="propagate-False",labelanchor="nw",width=280,height=180)
        labelFrame.pack()
        labelFrame.propagate(False)
        label = ttk.Label(labelFrame, text ="propagate false")
        label.pack()
        button = ttk.Button(labelFrame, text ="False")
        button.pack()


if __name__ == '__main__':
    master = Tk()
    master.title("LabelFrame-propagate")
    master.geometry("300x300")
    LabelFrameSamplePropagateTrue(master)
    LabelFrameSamplePropagateFalse(master)

    master.mainloop()

 

 

 

あわせて読みたい