tkinter grid和pack在单独的类中的问题

时间:2015-03-24 21:40:57

标签: python tkinter

所以我一直致力于一个小组项目,一些使用包和其他人使用网格作为布局管理器,我做了应用程序的一部分,将每个人的代码放在一起。

我一直在使用pack工作,我想要它做的是当我点击一个按钮时,会启动一个新的tk.Tk()窗口然后运行由其管理的代码网格。

这是一段代码,试图向您展示我正在做的事情,我不断收到错误"无法使用几何管理器网格。已经拥有由pack"

管理的奴隶
def launchQuest(self, questType):
    if(questType == "ham"):
        ham = tk.Tk()
        ham.configure(background='white')
        app = HM(ham)
        ham.mainloop()

如果你需要查看更多代码,那么到目前为止整个课程大约有400行,但我认为它不相关。

任何帮助都会很棒!

谢谢!

2 个答案:

答案 0 :(得分:3)

根据我上面的第一条评论,答案是:

  

只有一个Tk()根窗口。如果你想要其他窗户,   使用Toplevel小部件。

答案 1 :(得分:0)

在容器内一次只能使用一种定位(网格,包装或地点)。 Tk()为您提供了一个窗口(Toplevel),您可以使用它来包含其他窗口小部件,其中一些窗口小部件本身可以是容器,例如Frame。您可以将两个框架打包到一个窗口中,但是您无法打包一个框架并将另一个框架放入同一个窗口。此限制仅适用于一个深度 - 您可以放置​​一个框架,然后在其中打包一个框架,然后在其中包含网格,如果您愿意的话。使用什么方法来定位容器并不重要,只是在容器直接包含的东西的水平上。