summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-07 15:00:30 (GMT)
committerGitHub <noreply@github.com>2024-06-07 15:00:30 (GMT)
commit8368b67d1b5db48807010936d9550e762fc8630d (patch)
tree48866c6bc1bb9fc07484685d9692bce779852786
parenta2003bd195738c530e576dcd34c06fa10b6b5be8 (diff)
downloadcpython-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>
-rw-r--r--Lib/tkinter/ttk.py9
-rw-r--r--Misc/NEWS.d/next/Library/2024-06-07-13-21-11.gh-issue-120211.Rws_gf.rst1
2 files changed, 7 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:
diff --git a/Misc/NEWS.d/next/Library/2024-06-07-13-21-11.gh-issue-120211.Rws_gf.rst b/Misc/NEWS.d/next/Library/2024-06-07-13-21-11.gh-issue-120211.Rws_gf.rst
new file mode 100644
index 0000000..0106f2d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-06-07-13-21-11.gh-issue-120211.Rws_gf.rst
@@ -0,0 +1 @@
+Fix :mod:`tkinter.ttk` with Tcl/Tk 9.0.