Получаю ошибку в коде _tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by grid

   from tkinter import *
   
   def new_label():
          label=Label(root,text='123')
          label.pack()
   
   root=Tk()
   root.config(bg='white')
   root.geometry('400x400+250+250')
   root.resizable(False,False)
   
   
   
   Button(root,text='NewLabel',
          width=30,command=new_label).grid(row=0,column=0)
   
   
   root.mainloop()

Ответы (1 шт):

Автор решения: ganz

Ваша ошибка в том, что для окна root вы пытаетесь исспользовать два различных менеджера расположений - grid & pack. Чтобы решить эту проблему используйте frame, которые изначально так же нужно поместить либо в grid либо в pack

from tkinter import *
   
def new_label():
    label=Label(f,text='123')
    label.pack()
   
root=Tk()
root.config(bg='white')
root.geometry('400x400+250+250')
root.resizable(False,False)
   
   
f=Frame(root)
f.grid(row=1,column=0)   
Button(root,text='NewLabel',
         width=30,command=new_label).grid(row=0,column=0)

   
root.mainloop()
→ Ссылка