繁体   English   中英

如何使用类在 tkinter 中创建子 window?

[英]How to create a child window in tkinter using classes?

我正在学习 tkinter 并决定使用类来创建子 windows



class Window:
    def __init__(self, title, geometry, icon='default.ico'):
        self.root = Tk()
        self.title = self.root.title(title)
        self.geometry = self.root.geometry(geometry)
        self.icon = self.root.iconbitmap(icon)

    def run(self):
        self.root.mainloop()

    def child_window(self, title, geometry, icon='default.ico'):
        ChildWindow(self.root, title, geometry, icon)


class ChildWindow(Window):
    def __init__(self, parent, title, geometry, icon):
        self.child = Toplevel(parent)
        Window.__init__(self, title, geometry, icon)

    def run(self):
        self.child.mainloop()


x = Window('Window', '600x800')
x.child_window('Child window', '200x300')
x.run()

一切正常,但由于某种原因,我一次创建了两个孩子 windows

创建Window的实例会创建 window。 由于ChildWindow继承自Window ,因此它还创建了 window。 然后,在ChildWindow.__init__创建一个Toplevel ,总共为您提供三个 windows。

您的ChildWindow可能不应该从Window继承,因为它的每个实例或任何子类都将创建一个新的根 window。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM