Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tkinter: The deprecated trace variable command was removed from Tk 9.0 - tkinter still uses it. #127802

Open
culler opened this issue Dec 10, 2024 · 1 comment
Labels
topic-tkinter type-bug An unexpected behavior, bug, or error

Comments

@culler
Copy link
Contributor

culler commented Dec 10, 2024

Bug report

Bug description:

The file tkinter/__init__.py contains the following code:

    def trace_variable(self, mode, callback):
        """Define a trace callback for the variable.

        MODE is one of "r", "w", "u" for read, write, undefine.
        CALLBACK must be a function which is called when
        the variable is read, written or undefined.

        Return the name of the callback.

        This deprecated method wraps a deprecated Tcl method that will
        likely be removed in the future.  Use trace_add() instead.
        """
        # TODO: Add deprecation warning

    trace = trace_variable

The deprecated Tcl method was removed from Tcl 9.0, before the deprecation warning was added in tkinter. The trace_variable() and trace() methods still exist in both the current tkinter/__init__.py and the replacement which was included in PR #124112. Calling those methods with Tk 9.0 raises a TclError.

CPython versions tested on:

3.13

Operating systems tested on:

macOS

@culler culler added the type-bug An unexpected behavior, bug, or error label Dec 10, 2024
@culler culler changed the title tkinter: deprecated Variable.trace_variable command is removed from Tk 9.0 tkinter: deprecated trace variable command was removed from Tk 9.0 - tkinter still uses it. Dec 10, 2024
@culler culler changed the title tkinter: deprecated trace variable command was removed from Tk 9.0 - tkinter still uses it. tkinter: The deprecated trace variable command was removed from Tk 9.0 - tkinter still uses it. Dec 10, 2024
@culler
Copy link
Contributor Author

culler commented Dec 10, 2024

The deprecated Tcl trace variable command was a short cut for trace add variable. My suggestion would be to add the deprecation warnings to the trace and trace_variable methods of the Variable class, and also make those commands call the trace_add method. That way code which uses the deprecated methods will still work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic-tkinter type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

2 participants