【Python GUI tkinterサンプル】Widgetが属する親Frame(フレーム)を取得する

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

使用するメンバ

-master

使い方

parent = widget.master

親を取得したいWidget.masterで取得できる。

子を取得したい場合はこちらの記事

ボタンの属する親フレームを取得してリサイズするサンプル画像

※確認しやすくするためにラベルフレームで行う

※サンプルコードを実行

初期表示(width=”200″,height=”200″)

master_0

updateを押すとparentframeが拡大される(width=”300″,height=”300″)

master_1

 

サンプルコード

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()

あわせて読みたい