summaryrefslogtreecommitdiff
path: root/Lib/tkinter/__init__.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-10-30 18:49:52 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2016-10-30 18:49:52 +0200
commit32c0d3ada52109f339c081d3408546a4af024b3c (patch)
tree899499d5056ea2c9f44e225ff073cfb1763846ae /Lib/tkinter/__init__.py
parent043868393969224947c03617475d31f64ea59634 (diff)
downloadcpython-git-32c0d3ada52109f339c081d3408546a4af024b3c.tar.gz
Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
by representing the scale as float value internally in Tk. tkinter.IntVar now works if float value is set to underlying Tk variable.
Diffstat (limited to 'Lib/tkinter/__init__.py')
-rw-r--r--Lib/tkinter/__init__.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py
index 55bfb7f414..1eaab44bfe 100644
--- a/Lib/tkinter/__init__.py
+++ b/Lib/tkinter/__init__.py
@@ -357,7 +357,11 @@ class IntVar(Variable):
def get(self):
"""Return the value of the variable as an integer."""
- return self._tk.getint(self._tk.globalgetvar(self._name))
+ value = self._tk.globalgetvar(self._name)
+ try:
+ return self._tk.getint(value)
+ except (TypeError, TclError):
+ return int(self._tk.getdouble(value))
class DoubleVar(Variable):
"""Value holder for float variables."""
@@ -2864,7 +2868,7 @@ class Scale(Widget):
value = self.tk.call(self._w, 'get')
try:
return self.tk.getint(value)
- except (ValueError, TclError):
+ except (ValueError, TypeError, TclError):
return self.tk.getdouble(value)
def set(self, value):
"""Set the value to VALUE."""