[Python-checkins] r46998 - in python/trunk: Lib/lib-tk/Tkinter.py Misc/NEWS
martin.v.loewis
python-checkins at python.org
Sat Jun 17 11:15:16 CEST 2006
Author: martin.v.loewis
Date: Sat Jun 17 11:15:14 2006
New Revision: 46998
Modified:
python/trunk/Lib/lib-tk/Tkinter.py
python/trunk/Misc/NEWS
Log:
Patch #763580: Add name and value arguments to
Tkinter variable classes.
Modified: python/trunk/Lib/lib-tk/Tkinter.py
==============================================================================
--- python/trunk/Lib/lib-tk/Tkinter.py (original)
+++ python/trunk/Lib/lib-tk/Tkinter.py Sat Jun 17 11:15:14 2006
@@ -168,18 +168,30 @@
Subclasses StringVar, IntVar, DoubleVar, BooleanVar are specializations
that constrain the type of the value returned from get()."""
_default = ""
- def __init__(self, master=None):
- """Construct a variable with an optional MASTER as master widget.
- The variable is named PY_VAR_number in Tcl.
+ def __init__(self, master=None, value=None, name=None):
+ """Construct a variable
+
+ MASTER can be given as master widget.
+ VALUE is an optional value (defaults to "")
+ NAME is an optional Tcl name (defaults to PY_VARnum).
+
+ If NAME matches an existing variable and VALUE is omitted
+ then the existing value is retained.
"""
global _varnum
if not master:
master = _default_root
self._master = master
self._tk = master.tk
- self._name = 'PY_VAR' + repr(_varnum)
- _varnum = _varnum + 1
- self.set(self._default)
+ if name:
+ self._name = name
+ else:
+ self._name = 'PY_VAR' + `_varnum`
+ _varnum += 1
+ if value != None:
+ self.set(value)
+ elif not self._tk.call("info", "exists", self._name):
+ self.set(self._default)
def __del__(self):
"""Unset the variable in Tcl."""
self._tk.globalunsetvar(self._name)
@@ -217,15 +229,29 @@
"""Return all trace callback information."""
return map(self._tk.split, self._tk.splitlist(
self._tk.call("trace", "vinfo", self._name)))
+ def __eq__(self, other):
+ """Comparison for equality (==).
+
+ Note: if the Variable's master matters to behavior
+ also compare self._master == other._master
+ """
+ return self.__class__.__name__ == other.__class__.__name__ \
+ and self._name == other._name
class StringVar(Variable):
"""Value holder for strings variables."""
_default = ""
- def __init__(self, master=None):
+ def __init__(self, master=None, value=None, name=None):
"""Construct a string variable.
- MASTER can be given as master widget."""
- Variable.__init__(self, master)
+ MASTER can be given as master widget.
+ VALUE is an optional value (defaults to "")
+ NAME is an optional Tcl name (defaults to PY_VARnum).
+
+ If NAME matches an existing variable and VALUE is omitted
+ then the existing value is retained.
+ """
+ Variable.__init__(self, master, value, name)
def get(self):
"""Return value of variable as string."""
@@ -237,11 +263,17 @@
class IntVar(Variable):
"""Value holder for integer variables."""
_default = 0
- def __init__(self, master=None):
+ def __init__(self, master=None, value=None, name=None):
"""Construct an integer variable.
- MASTER can be given as master widget."""
- Variable.__init__(self, master)
+ MASTER can be given as master widget.
+ VALUE is an optional value (defaults to 0)
+ NAME is an optional Tcl name (defaults to PY_VARnum).
+
+ If NAME matches an existing variable and VALUE is omitted
+ then the existing value is retained.
+ """
+ Variable.__init__(self, master, value, name)
def set(self, value):
"""Set the variable to value, converting booleans to integers."""
@@ -256,11 +288,17 @@
class DoubleVar(Variable):
"""Value holder for float variables."""
_default = 0.0
- def __init__(self, master=None):
+ def __init__(self, master=None, value=None, name=None):
"""Construct a float variable.
- MASTER can be given as a master widget."""
- Variable.__init__(self, master)
+ MASTER can be given as master widget.
+ VALUE is an optional value (defaults to 0.0)
+ NAME is an optional Tcl name (defaults to PY_VARnum).
+
+ If NAME matches an existing variable and VALUE is omitted
+ then the existing value is retained.
+ """
+ Variable.__init__(self, master, value, name)
def get(self):
"""Return the value of the variable as a float."""
@@ -268,12 +306,18 @@
class BooleanVar(Variable):
"""Value holder for boolean variables."""
- _default = "false"
- def __init__(self, master=None):
+ _default = False
+ def __init__(self, master=None, value=None, name=None):
"""Construct a boolean variable.
- MASTER can be given as a master widget."""
- Variable.__init__(self, master)
+ MASTER can be given as master widget.
+ VALUE is an optional value (defaults to False)
+ NAME is an optional Tcl name (defaults to PY_VARnum).
+
+ If NAME matches an existing variable and VALUE is omitted
+ then the existing value is retained.
+ """
+ Variable.__init__(self, master, value, name)
def get(self):
"""Return the value of the variable as a bool."""
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Sat Jun 17 11:15:14 2006
@@ -163,6 +163,9 @@
Library
-------
+- Patch #763580: Add name and value arguments to Tkinter variable
+ classes.
+
- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
mime.types file for determining MIME types.
More information about the Python-checkins
mailing list