在几个类中使用tkinter grid()的正确方法是什么?所有这些类都将小部件发布到主窗口?

在几个类中使用tkinter grid()的正确方法是什么?所有这些类都将小部件发布到主窗口?,tkinter,Tkinter,我试图学习tkinter,特别是了解grid()如何跨类工作。我在几年前的一篇文章中使用pack()发现了这段简单的代码。要使用grid()而不是pack(),必须对此代码进行哪些更改?我假设这很简单,但我还无法使用grid()创建LabelFrame小部件 你应该尝试使用grid而不是pack,然后在做了一些实验后提问。将pack()替换为grid()@masque好吧,那太简单了。。。我删除了所有pack()语句,并从头开始尝试使用grid(),但成功率有限。我现在看得更清楚了。谢谢主要是关

我试图学习tkinter,特别是了解grid()如何跨类工作。我在几年前的一篇文章中使用pack()发现了这段简单的代码。要使用grid()而不是pack(),必须对此代码进行哪些更改?我假设这很简单,但我还无法使用grid()创建LabelFrame小部件


你应该尝试使用
grid
而不是
pack
,然后在做了一些实验后提问。将
pack()
替换为
grid()
@masque好吧,那太简单了。。。我删除了所有pack()语句,并从头开始尝试使用grid(),但成功率有限。我现在看得更清楚了。谢谢主要是关于使用网格。
import tkinter as tk

class Testing(tk.LabelFrame):
    def __init__(self, parent, main):
        self.buttonWidth = 10
        self.parent=parent
        self.main = main 

        tk.LabelFrame.__init__(self, self.parent, text="Test Operations",
            padx=10,
            pady=10
        )

        self.taskButton = tk.Button(self, text="Do A Task", 
            width=self.buttonWidth,
            command=self.doATask,
        )

        self.taskButton.pack()

    def doATask(self):
        self.main.results.getResult()

class Results(tk.LabelFrame):
    def __init__(self, parent, main):
        self.parent = parent
        self.main = main 
        tk.LabelFrame.__init__(self, self.parent, text="Visual Results")

        self.resultLbl = tk.Label(self, text="Result")
        self.resultLbl.pack()

    def getResult(self):
        self.resultLbl.config(bg='yellow')

class Application(tk.Frame):
    def __init__(self, parent):
        self.parent = parent
        tk.Frame.__init__(self, self.parent)

        self.testing = Testing(self.parent, self)
        self.results = Results(self.parent, self)

        self.testing.pack(fill=tk.X)
        self.results.pack(fill=tk.X)

if __name__ == "__main__":
    root = tk.Tk()
    root.title("Modular GUI App")
    Application(root).pack()
    root.mainloop()