I want to modify my label based on mouse position () and it works but only one time. How can I do this every time my mouse changes position? The code below modifies my label only one time. I would appreciate if you could take a look at my code and tell me what is wrong! Thank you !
import tkinter as tk
window=tk.Tk()
window.title("Labels")
window.geometry("850x600")
window.resizable(width=False, height=False)
#create main function
def change_me(event):
if str(event.x>430):
l1.config(text="Hello")
if str(event.x<430):
l1.config(text="Hi")
#label I wanna modify
l1=tk.Label(width=500, height=500, text="to display")
l1.pack()
window.bind('<Motion>', change_me)
window.mainloop()
I tried different things with if, elif and tried to modify scopes. It still works only once.
The issue with your code is that you are converting the result of the comparison event.x > 430 and event.x < 430 to a string before checking it in the if statements. This means that the conditions will always evaluate to True, since non-empty strings are considered truthy in Python.
To fix this, you should remove the str() function calls from your if statements. change_me function like the other guy said should be fine:
def change_me(event):
if event.x > 430:
l1.config(text="Hello")
if event.x < 430:
l1.config(text="Hi")