fix this code 'cannot use geometry manager grid inside . which already has slaves managed by pack'

坚强是说给别人听的谎言 提交于 2021-02-11 13:49:23

问题


I wrote this simple code using grid(), but there seem to be a problem and shows the error :

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 . which already has slaves managed by pack


回答1:


The error is telling you exactly what is wrong: you can't use both pack and grid with widgets that share a common parent. In this case, the common parent is "." which is the internal name for the root widget.

You're using pack for frame and grid for self.name_e, and both of those have the root window as their parent. You either need to use grid for both or pack for both.



来源:https://stackoverflow.com/questions/58087020/fix-this-code-cannot-use-geometry-manager-grid-inside-which-already-has-slave

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!