Как сделать кастомный заголовок окна в Tkinter?

Как сделать свой заголовок окна в Tkinter? Я пробовал так:

from tkinter import Tk, Label, font, Frame, Button

root = Tk()
root['bg'] = '#232428'
root.geometry('350x500')
root.resizable(False, False)
root.overrideredirect(True)
custom_font = font.Font(family='Impact', size=16)

header_frame = Frame(root, bg='#3F3F3F', relief='raised', bd=0)
header_frame.pack(fill='x')
close_button = Button(header_frame, text='x', bg='#3F3F3F', fg='white', activebackground='#C70039',
                      activeforeground='white', bd=0, highlightthickness=0, command=root.destroy, font=custom_font)
close_button.pack(side='right', padx=5)
header_label = Label(header_frame, text='Test',
                     font=custom_font, fg='#FFFFFF', bg='#3F3F3F')
header_label.pack(pady=5)

content_frame = Frame(root, bg='#232428')
content_frame.pack(fill='both', expand=True)


def on_drag_start(event):
    root._offset_x = event.x_root - root.winfo_x()
    root._offset_y = event.y_root - root.winfo_y()


def on_drag(event):
    x = event.x_root - root._offset_x
    y = event.y_root - root._offset_y
    root.geometry(f"+{x}+{y}")


header_frame.bind('<Button-1>', on_drag_start)
header_frame.bind('<B1-Motion>', on_drag)
header_label.bind('<Button-1>', on_drag_start)
header_label.bind('<B1-Motion>', on_drag)

root.mainloop()

Но если выйти из фокуса окна (Например нажать куда то вне окна) то оно пропадёт и будет в фоне, а на панели задач его нет. И вообще это не окно. Я хочу что бы это было окно и можно было делать так:


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