【Python GUI tkinterサンプル】Widgetが属する親Frame(フレーム)を取得する
使用するメンバ
-master
使い方
parent = widget.master
親を取得したいWidget.masterで取得できる。
ボタンの属する親フレームを取得してリサイズするサンプル画像
※確認しやすくするためにラベルフレームで行う
※サンプルコードを実行
初期表示(width=”200″,height=”200″)
updateを押すとparentframeが拡大される(width=”300″,height=”300″)
サンプルコード
from tkinter import *
import tkinter.ttk as ttk
class FrameSampleParent(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.pack()
self.create_widgets()
def create_widgets(self):
parentFrame =ttk.LabelFrame(self,text="parentframe",width="200",height="200")
parentFrame.pack()
parentFrame.propagate(False)
updateButton = ttk.Button(parentFrame,text="update")
updateButton.pack()
updateButton.bind("<Button-1>",self.updateParentSize)
def updateParentSize(self,event):
parent = event.widget.master
print("width:{},height:{}".format(parent['width'],parent['height']))
parent['width'] ="300"
parent['height']= "300"
if __name__ == '__main__':
master = Tk()
master.geometry("600x400")
master.title("FrameSampleParent")
FrameSampleParent(master)
master.mainloop()