mirror of
https://github.com/python/cpython
synced 2024-10-06 17:44:58 +00:00
[3.12] gh-120211: Fix tkinter.ttk with Tcl/Tk 9.0 (GH-120213) (GH-120216)
* Use new methods for tracing Tcl variable.
* Fix Combobox.current() for empty combobox.
(cherry picked from commit d68a22e7a6
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
ec139c8fae
commit
ac68d83fec
|
@ -683,7 +683,10 @@ def current(self, newindex=None):
|
|||
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)
|
||||
|
||||
|
||||
|
@ -1515,7 +1518,7 @@ def __init__(self, master=None, variable=None, from_=0, to=10, **kw):
|
|||
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)
|
||||
|
||||
|
@ -1523,7 +1526,7 @@ def __init__(self, master=None, variable=None, from_=0, to=10, **kw):
|
|||
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:
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix :mod:`tkinter.ttk` with Tcl/Tk 9.0.
|
Loading…
Reference in a new issue