2017-01-30 3 views
0

Ich mache ein Fenster mit tkinter und ich möchte überprüfen, ob ein Label an den Koordinaten relx = 0.3 und rely = 0.63 ist. Gibt es irgendeine Funktion, die ich verwenden könnte? Ich habe schon versucht, die Funktion zu verwenden, aber da muss ich jedem Widget einen Namen geben.Finde ein Widget in einem Fenster nach Koordinaten

das Widget Ich versuche So wird in dem Fenster, sich zu bewegen, und wenn es erreicht die Koordinaten ich es auf eine andere Weise bewegen wollen, aber ich nicht jede Funktion kennen, die ich

Antwort

0

Sie winfo_x/y verwenden können, verwenden könnte um die Label-Koordinaten zu erhalten und winfo_width/height, um die Dimension des Fensters zu erhalten, um relative Koordinaten zu berechnen. Ich machte ein kleines Beispiel, wo das Ziel ist, das Fenster zu verkleinern, um die richtigen relativen Koordinaten zu erhalten:

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() 
Verwandte Themen