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