2017-01-30 5 views
0

Я создаю окно с tkinter, и я хочу проверить, находится ли метка в координатах relx = 0.3 и rely = 0.63. Есть ли какая-то функция, которую я мог бы использовать? Я уже пытался использовать функцию nametowidget, но там я должен дать каждому виджету, что у меня есть имя.Найти виджет в окне по координатам

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

ответ

0

Вы можете использовать winfo_x/y чтобы получить координаты меток и winfo_width/height, чтобы получить размер окна для вычисления относительных координат. Я сделал небольшой пример, когда целью является изменение размера окна для получения правильных относительных координат:

import tkinter as tk 

def check_label_relpos(): 
    relx = l.winfo_x()/parent.winfo_width() 
    rely = l.winfo_y()/parent.winfo_height() 

    if (abs(relx - 0.3) < 0.02) and (abs(rely - 0.63) < 0.02): 
     print("Ok") 
    else: 
     print(relx, rely, "Try again") 

parent = tk.Tk() 

l = tk.Label(parent, text="Label text", bg="red") 
l.place(x=50, y=160) 

tk.Button(parent, text="Check label relpos", command=check_label_relpos).place(relx=0.5, rely=1, anchor="s") 

parent.mainloop()