tkinter 网格和单独打包的问题 类
Issues with tkinter grid and pack in separate classes
所以我一直在做一个小组项目,一些使用 pack,另一些使用 grid 作为布局管理器,我正在制作应用程序的一部分,将每个人的代码放在一起。
我一直在使用 pack 开发 UI,我想要它做的是当我点击一个按钮时,一个新的 tk.Tk() window 是launched 然后运行其由网格管理的代码。
这是一段代码,试图向您展示我在做什么,但我一直收到错误 "cannot use the geometry manager grid inside . which already has slaves managed by pack"
def launchQuest(self, questType):
if(questType == "ham"):
ham = tk.Tk()
ham.configure(background='white')
app = HM(ham)
ham.mainloop()
如果您需要查看更多代码,请询问,整个 class 到目前为止大约有 400 行,但我认为这无关紧要。
任何帮助都会很棒!
谢谢!
根据我上面的第一条评论,答案是:
There should be only one Tk()
root window. If you want other windows,
use Toplevel
widget.
一次只能在容器内使用一种类型的定位(网格、包或位置)。 Tk() 给你一个 window (Toplevel),你可以用它来包含其他小部件,其中一些小部件本身可以是容器,例如 Frame。您可以将两个框架打包到一个 window 中,但您不能将一个框架打包并将另一个框架放入同一个 window 中。此限制仅适用于一层深度——您可以放置一个框架,然后在其中打包一个框架,然后在其中放置网格,如果您愿意的话。使用什么方法定位容器并不重要,只在该容器直接包含的事物的级别上。
所以我一直在做一个小组项目,一些使用 pack,另一些使用 grid 作为布局管理器,我正在制作应用程序的一部分,将每个人的代码放在一起。
我一直在使用 pack 开发 UI,我想要它做的是当我点击一个按钮时,一个新的 tk.Tk() window 是launched 然后运行其由网格管理的代码。
这是一段代码,试图向您展示我在做什么,但我一直收到错误 "cannot use the geometry manager grid inside . which already has slaves managed by pack"
def launchQuest(self, questType):
if(questType == "ham"):
ham = tk.Tk()
ham.configure(background='white')
app = HM(ham)
ham.mainloop()
如果您需要查看更多代码,请询问,整个 class 到目前为止大约有 400 行,但我认为这无关紧要。
任何帮助都会很棒!
谢谢!
根据我上面的第一条评论,答案是:
There should be only one
Tk()
root window. If you want other windows, useToplevel
widget.
一次只能在容器内使用一种类型的定位(网格、包或位置)。 Tk() 给你一个 window (Toplevel),你可以用它来包含其他小部件,其中一些小部件本身可以是容器,例如 Frame。您可以将两个框架打包到一个 window 中,但您不能将一个框架打包并将另一个框架放入同一个 window 中。此限制仅适用于一层深度——您可以放置一个框架,然后在其中打包一个框架,然后在其中放置网格,如果您愿意的话。使用什么方法定位容器并不重要,只在该容器直接包含的事物的级别上。