This section lists previously described changes and other bugfixes
that may require changes to your code.
+* In :mod:`tkinter`, the *name* parameter of the
+ :meth:`~tkinter.Misc.wait_variable`, :meth:`~tkinter.Misc.setvar` and
+ :meth:`~tkinter.Misc.getvar` methods and the *value* parameter of
+ :meth:`!setvar` are now required. Calling these methods without
+ them, which formerly defaulted to ``'PY_VAR'`` and ``'1'``, now raises
+ :exc:`TypeError`.
+ (Contributed by Serhiy Storchaka in :gh:`152587`.)
+
Build changes
=============
def test_getvar(self):
self.root.setvar('test_var', 'hello')
self.assertEqual(self.root.getvar('test_var'), 'hello')
+ # The name and value are required (gh-152587).
+ self.assertRaises(TypeError, self.root.getvar)
+ self.assertRaises(TypeError, self.root.setvar)
+ self.assertRaises(TypeError, self.root.setvar, 'test_var')
def test_register(self):
result = []
self.root.after(1, var.set, 'done')
self.root.wait_variable(var) # Returns once the variable is set.
self.assertEqual(var.get(), 'done')
+ # The name is required (gh-152587).
+ self.assertRaises(TypeError, self.root.wait_variable)
def test_wait_window(self):
top = tkinter.Toplevel(self.root)
else:
return self.tk.getint(self.tk.call(args))
- def wait_variable(self, name='PY_VAR'):
+ def wait_variable(self, name):
"""Wait until the variable is modified.
A parameter of type IntVar, StringVar, DoubleVar or
window = self
self.tk.call('tkwait', 'visibility', window._w)
- def setvar(self, name='PY_VAR', value='1'):
+ def setvar(self, name, value):
"""Set Tcl variable NAME to VALUE."""
self.tk.setvar(name, value)
- def getvar(self, name='PY_VAR'):
+ def getvar(self, name):
"""Return value of Tcl variable NAME."""
return self.tk.getvar(name)
--- /dev/null
+In :mod:`tkinter`, the *name* parameter of the
+:meth:`~tkinter.Misc.wait_variable`, :meth:`~tkinter.Misc.setvar` and
+:meth:`~tkinter.Misc.getvar` methods and the *value* parameter of
+:meth:`!setvar` are now required. Their former default values
+(``'PY_VAR'`` and ``'1'``) were not meaningful.