【问题标题】:inherit parent window and add an additional button in tkinter?继承父窗口并在 tkinter 中添加一个附加按钮?
【发布时间】:2019-11-16 13:33:41
【问题描述】:

我正在尝试创建两个单独的窗口,其中一个应该继承其他界面,并网格化一些额外的按钮。我怎样才能做到这一点? 下面是一段示例代码:

f = ("Helvetica", 18)
bg = 'white'
g = '1400x800'

class MainUser(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        Frame.configure(self, background='white')

        self.logo = PhotoImage(file="logo.gif")
        Label(self, image=self.logo).pack()

        Button(self, text='test', bg=bg, font=f).pack()

class MainAdmin(MainUser):
    pass # What now?

【问题讨论】:

  • 不能将一些额外的按钮“网格化”到 MainUser 的实例中,因为它现有的子小部件由 .pack() 管理 - 不能与 @987654324 一起使用@ 在同一个容器中。如果你的意思是在更一般的意义上,你当然可以在子类中打包额外的按钮,你只需给MainAdmin一个.__init__()就像MainUser's(调用超类__init__(),添加任何你想要的小部件)。
  • @jasonharper 是的,我的意思是在更一般的情况下,您所说的“超类”是什么意思。抱歉,我是 OOP 新手。

标签: python-3.x class tkinter


【解决方案1】:

您只需要创建一个适当的__init__ 来调用超类中的相同函数。然后,像在超类中那样添加小部件。

例子:

class MainAdmin(MainUser):
    def __init__(self, master):
        super().__init__(master)

        another_label = Label(self, text="Hello from MainAdmin")
        another_label.pack(side="top", fill="x")

【讨论】:

    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多