#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()