Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.0k views
in Technique[技术] by (71.8m points)

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

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...