【问题标题】:fix this code 'cannot use geometry manager grid inside . which already has slaves managed by pack'修复此代码'不能在内部使用几何管理器网格。已经有由包管理的奴隶'
【发布时间】:2025-12-10 05:45:02
【问题描述】:

我用 grid() 写了这个简单的代码,但似乎有问题并显示错误:

class Input_screen:

    def __init__(self,master):
        frame = Frame(master)
        frame.pack()

        self.name_lable = Label(frame,text = 'NAME')
        self.name_e = Entry(root)

        self.name_lable.grid(row=1,column=0,sticky=W)
        self.name_e.grid(row=1,column=1)    

root = Tk()
b = Input_screen(root)
root.mainloop()

TclError: cannot use geometry manager grid inside 。已经有由 pack 管理的 slave

【问题讨论】:

标签: python tkinter


【解决方案1】:

错误告诉您究竟出了什么问题:您不能同时使用 packgrid 与共享一个共同父级的小部件。在这种情况下,共同的父母是“。”这是根小部件的内部名称。

您将pack 用于framegrid 用于self.name_e,并且它们都将根窗口作为其父窗口。您要么需要同时使用grid,要么需要使用pack

【讨论】:

  • 好吧,那么我们不能在同一个类中使用pack和grid吗?谢谢
  • @DarkKingAce:你可以在同一个班级使用它们,没问题。您只是不能在两个或多个具有相同主控的小部件上使用它们。