Вот статья в блоге, в которой обсуждаются различные методы централизации заголовка в окне Tkinter, а также примеры кода:

Метод 1: использование пользовательского класса
Один из способов централизовать заголовок — создать собственный класс, который наследуется от класса Tkinter Tkи переопределяет titleметод. Вот пример:

import tkinter as tk
class CenteredTk(tk.Tk):
    def __init__(self, *args, kwargs):
        super().__init__(*args, kwargs)
        self.title("Centered Title")
    def title(self, *args, kwargs):
        super().title(*args, kwargs)
        self.update_idletasks()
        window_width = self.winfo_width()
        screen_width = self.winfo_screenwidth()
        x = int((screen_width - window_width) / 2)
        self.geometry(f"+{x}+0")
root = CenteredTk()
root.mainloop()

В этом методе мы создаем собственный класс CenteredTk, который наследуется от tk.Tk. Мы переопределяем метод title, чтобы сначала вызвать исходный метод title, а затем рассчитать ширину окна, ширину экрана и соответствующую координату X для центрирования окна. Мы задаем геометрию окна, используя вычисленную координату X.

Метод 2. Использование диспетчера геометрии place.
Другой способ централизации заголовка – использование диспетчера геометрии placeдля размещения Labelвиджет. Вот пример:

import tkinter as tk
root = tk.Tk()
root.title("Centered Title")
# Create a label widget
label = tk.Label(root, text="Centered Title", font=("Arial", 16))
label.place(relx=0.5, rely=0.5, anchor="center")
root.mainloop()

В этом методе мы создаем виджет Labelс нужным заголовком и используем менеджер геометрии place, чтобы расположить его в центре окна. Аргументы relx=0.5и rely=0.5указывают, что метка должна быть центрирована по горизонтали и вертикали соответственно.

Метод 3: использование gridGeometry Manager
The grid

import tkinter as tk
root = tk.Tk()
root.title("Centered Title")
# Create a label widget
label = tk.Label(root, text="Centered Title", font=("Arial", 16))
label.grid(row=0, column=0)
# Configure grid to center the label
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.mainloop()

В этом методе мы создаем виджет Labelи помещаем его в верхнюю левую ячейку сетки. Затем мы настраиваем сетку так, чтобы метка располагалась по центру как по вертикали, так и по горизонтали.

В этой статье мы рассмотрели различные методы централизации заголовка в окне Tkinter. Мы узнали, как добиться этого, создав собственный класс, используя менеджер геометрии placeи менеджер геометрии grid. Реализуя эти методы, вы можете улучшить визуальную эстетику своих приложений Tkinter и улучшить взаимодействие с пользователем.

Не забудьте поэкспериментировать с этими методами и настроить их в соответствии со своими конкретными требованиями. Используя эти методы в своем наборе инструментов, вы можете создавать потрясающие интерфейсы Tkinter с центрированными заголовками окон.