【Python GUI tkinterサンプル】ttk.LabelFrame(ラベルフレーム)のフレームサイズを固定する
使用するメソッド
propagate(bool)
boolはTrue,Falseもしくは0,1
使い方
propagate(True)がデフォルトで指定してあるため中のWidgetのサイズに影響されてしまう。
中のWidgetに関係なく指定したサイズで固定するためにはpropagate(False)を使用する。
同じWidget群を含んだLabelFrameにpropagateを指定したときのSample画像
サンプルコード
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()