问题
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