diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2024-06-07 15:00:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-07 15:00:30 (GMT) |
commit | 8368b67d1b5db48807010936d9550e762fc8630d (patch) | |
tree | 48866c6bc1bb9fc07484685d9692bce779852786 /Lib | |
parent | a2003bd195738c530e576dcd34c06fa10b6b5be8 (diff) | |
download | cpython-8368b67d1b5db48807010936d9550e762fc8630d.zip cpython-8368b67d1b5db48807010936d9550e762fc8630d.tar.gz cpython-8368b67d1b5db48807010936d9550e762fc8630d.tar.bz2 |
[3.13] gh-120211: Fix tkinter.ttk with Tcl/Tk 9.0 (GH-120213) (GH-120215)
* Use new methods for tracing Tcl variable.
* Fix Combobox.current() for empty combobox.
(cherry picked from commit d68a22e7a68ae09f7db61d5a1a3bd9c0360cf3ee)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/tkinter/ttk.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py index 5ca938a..073b3ae 100644 --- a/Lib/tkinter/ttk.py +++ b/Lib/tkinter/ttk.py @@ -690,7 +690,10 @@ class Combobox(Entry): returns the index of the current value in the list of values or -1 if the current value does not appear in the list.""" if newindex is None: - return self.tk.getint(self.tk.call(self._w, "current")) + res = self.tk.call(self._w, "current") + if res == '': + return -1 + return self.tk.getint(res) return self.tk.call(self._w, "current", newindex) @@ -1522,7 +1525,7 @@ class LabeledScale(Frame): self.label.place(anchor='n' if label_side == 'top' else 's') # update the label as scale or variable changes - self.__tracecb = self._variable.trace_variable('w', self._adjust) + self.__tracecb = self._variable.trace_add('write', self._adjust) self.bind('<Configure>', self._adjust) self.bind('<Map>', self._adjust) @@ -1530,7 +1533,7 @@ class LabeledScale(Frame): def destroy(self): """Destroy this widget and possibly its associated variable.""" try: - self._variable.trace_vdelete('w', self.__tracecb) + self._variable.trace_remove('write', self.__tracecb) except AttributeError: pass else: |