Yi3112Yi3112
@Yi3112Yi3112

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

tkinterのframeにおけるmasterの役割

tkinterのframeにおける"master"の役割がわかりません。

class Window(tk.Frame):
    def __init__(self,master):
        super().__init__(master)

windowクラスはframeを継承しているというのはわかるのですが
何せmasterがわからないのです。
どのサイトを見てもおまじないのように書いていて説明が見つからず・・・

ご教授いただけると幸いです。
よろしくお願いいたします。

0

1Answer

どのGUI部品(親部品)上に配置するのかを指定する役割です。省略することもできてデフォルトルートを指定したことになります。
名前は master でも root でも parent でも何でもいいですよ。
tkinterの実装やサンプルコードがmasterになっているので、それを真似しているだけのことでしょう。
master/slave は差別用語として認識されているので、今後 master は使われなくなるかもしれませんよ。

tkinterライブラリのソースコード(実装)はご自身のパソコンにダウンロード・インストールされているので見てみるといいですよ。

tkinterライブラリのFrameクラス実装
class Frame(Widget):
    """Frame widget which may contain other widgets and can have a 3D border."""

    def __init__(self, master=None, cnf={}, **kw):
        """Construct a frame widget with the parent MASTER.

        Valid resource names: background, bd, bg, borderwidth, class,
        colormap, container, cursor, height, highlightbackground,
        highlightcolor, highlightthickness, relief, takefocus, visual, width."""
Widgetクラスの親クラス実装
class BaseWidget(Misc):
    """Internal class."""

    def _setup(self, master, cnf):
        """Internal function. Sets up information about children."""
        if master is None:
            master = _get_default_root()
        self.master = master
1Like

Comments

  1. @Yi3112Yi3112

    Questioner

    理解できました!ありがとうございます!

Your answer might help someone💌