How can you get what the function input in `trace_add` return (tkinter)

Question:

The callback function that is called when the variable you’re listening to is changed / read / etc … (according to mode) is called indeed, but I cannot find a way to get what the function returns. And I want it to modify a variable without having to start my listener with global my_variable, as using a global variable here is likely to not be recommended.

The documentation seems to indicate that callback can return stuff (the type-hinting doesn’t specify -> None but -> Any. Cf. below:

enter image description here

Answers:

The type hint showing -> str means trace_add will return a str, which means, when you store what trace_add returns it will be a string. It does not refer to the return value from callback argument supplied to it:

abc = var.trace_add('write', func)
print(abc) # Ex: 2761646820160func

Which will store the name of the callback.

And you cannot use what func returns, because it is a callback. You might want to use global var_name inside func to use the variable name elsewhere rather than returning it.

Answered By: Delrius Euphoria
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.