在类中创建tkinter标签,按钮,..



我正在尝试改进我的tkinter应用程序结构。

因此,我尝试了此线程中提到的 OOP 方法。

我试图玩弄它,但除了示例代码之外,无法走得更远。我只需要一个状态栏和一个主体,但我无法在状态栏/主类中显示任何内容(例如LabelFrameCanvasButton...(。

这是我目前拥有的:

import tkinter as tk
class Statusbar(tk.Frame):
#create Labels, Buttons,...
class Main(tk.Frame):
#create Labels, Buttons,...

class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.statusbar = Statusbar(self)
self.main = Main(self)
self.statusbar.grid()
self.main.grid()

if __name__ == "__main__":
root = tk.Tk()
MainApplication(root).grid()
root.mainloop()

也许你可以为我指出正确的方向或给我看一个简单的例子。谢谢。

编辑:试图更具体:

我用过tkinter/python工作过一段时间。我只是不知道如何从上面的链接继续建议的 OOP 结构。 我无法在StatusbarMain类中获取任何内容(例如:创建标签,按钮等(。所以,如果你能给我看一个简单的例子来在这些类中创建任何东西,我会很高兴。

这里有一些东西应该给你一个大致的想法:

import tkinter as tk

class Statusbar(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
lbl1 = tk.Label(self, text='Status1', fg='yellow', bg='blue')
lbl1.pack(side='left')
lbl2 = tk.Label(self, text='Status2', fg='white', bg='green')
lbl2.pack(side='left')

class Main(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
txt = tk.Text(self, width=15, height=5)
txt.insert(tk.END, 'Hello world')
txt.pack()

class MainApplication(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.statusbar = Statusbar(self)
self.main = Main(self)
self.statusbar.grid()
self.main.grid()

if __name__ == "__main__":
root = tk.Tk()
MainApplication(root).grid()
root.mainloop()

最新更新