Как управлять местоположением окно tkinter будет центрироваться, когда окно будет перетаскиваться вверх

#python #tkinter

Вопрос:

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

 from tkinter import *


def move(e):  # 
    root.geometry("1270x725 0 0")


root = Tk()
root.geometry("1270x725 0 0")
root.resizable(False, False)
button = Button(root, command=move)
button.place(x=10, y=10)
Entry = Entry(root)
Entry.place(relx=.4, rely=.5)
root.bind('<Configure>', move)

root.mainloop()
 

Комментарии:

1. Это происходит потому, что вы жестко задали положение окна в строке геометрии.

Ответ №1:

Вы можете проверить event.y , меньше ли значение определенного значения. Если он меньше, то сбросьте позицию.

Вот пример:

 from tkinter import *


def move(e):  
    if e.y < 5:
        
        sw, sh = root.winfo_screenwidth(), root.winfo_screenheight()
        root.geometry(f"1270x725 {(sw-1270)//2} {(sh-725)//2}")


root = Tk()
root.geometry("1270x725 0 0")
root.resizable(False, False)

root.bind('<Configure>', move)

root.mainloop()