Можно ли сделать виджет внутри функции?

Например

def func():
 global s
 s = Entry(w, width=25,)
 s.grid(column=2, row=0)

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

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

можно:

from tkinter import Tk, Button

def f():
    global root
    btn = Button(root)
    btn.pack()
    
root = Tk()

btn = Button(root, text = "create button", command = f)
btn.pack()

root.mainloop()

либо так с grid

from tkinter import Tk, Button

def f():
    global root, i, j
    
    i += 1
    if i == 5:
        i = 0
        j += 1
        
    btn = Button(root)
    btn.grid(row = i, column = j)
    
root = Tk()

i, j = 0, 0
btn = Button(root, command = f)
btn.grid(row = 0, column = 0)

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