Можно ли перемещать Frame за дочерние объекты в нем?

Есть Frame в котором находится 3 лейбла, я делаю бинд, чтобы этот фрейм можно было перемещать мышкой. при помощи

def drag(event):
    event.widget.place(x=event.x_root, y=event.y_root, anchor=CENTER)

frametime.bind("<B1-Motion>", drag)

Красный - поля лейблов, белый - Frame

За белое поле фрейма я могу перетаскивать весь фрейм, но при этом за дочерние объекты(лейблы, красного цвета) перетащить фрейм не получается, как сделать так чтобы я мог перетаскивать фрейм за дочерние объекты?

retag("alltime", frametime, timelabeltime, timelabelday, 
timelabelmonth)
def drag(event):
    event.widget.place(x=event.x_root, y=event.y_root, 
    anchor=CENTER)

root.bind_class("alltime", "<B1-Motion>", drag)

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

Автор решения: Сергей Кох

Просто замените

def drag(event):
    event.widget.place(

на

def drag(event):
    frametime.place(

Пример реализации:

import tkinter


def drag(event):
    frametime.place(x=event.x_root, y=event.y_root, anchor=tkinter.CENTER)


def retag(tag, *args):
    '''Add the given tag as the first bindtag for every widget passed in'''
    for widget in args:
        widget.bindtags((tag,) + widget.bindtags())

tk = tkinter.Tk()
tk.geometry("{0}x{1}+0+0".format(tk.winfo_screenwidth(), tk.winfo_screenheight()))
frametime = tkinter.Frame(tk, bg="red", padx=20, pady=20)
a_label = tkinter.Label(frametime, text="A Label")
a_button = tkinter.Button(frametime, text="click me!")
frametime.pack()
a_label.pack()
a_button.pack()

retag("special", frametime, a_label, a_button)
tk.bind_class("special", "<B1-Motion>", drag)

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