mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
Patch #763580: Add name and value arguments to
Tkinter variable classes.
This commit is contained in:
parent
541660553d
commit
337487e3b8
2 changed files with 66 additions and 19 deletions
|
|
@ -168,17 +168,29 @@ class Variable:
|
||||||
Subclasses StringVar, IntVar, DoubleVar, BooleanVar are specializations
|
Subclasses StringVar, IntVar, DoubleVar, BooleanVar are specializations
|
||||||
that constrain the type of the value returned from get()."""
|
that constrain the type of the value returned from get()."""
|
||||||
_default = ""
|
_default = ""
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None, value=None, name=None):
|
||||||
"""Construct a variable with an optional MASTER as master widget.
|
"""Construct a variable
|
||||||
The variable is named PY_VAR_number in Tcl.
|
|
||||||
|
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
|
global _varnum
|
||||||
if not master:
|
if not master:
|
||||||
master = _default_root
|
master = _default_root
|
||||||
self._master = master
|
self._master = master
|
||||||
self._tk = master.tk
|
self._tk = master.tk
|
||||||
self._name = 'PY_VAR' + repr(_varnum)
|
if name:
|
||||||
_varnum = _varnum + 1
|
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)
|
self.set(self._default)
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"""Unset the variable in Tcl."""
|
"""Unset the variable in Tcl."""
|
||||||
|
|
@ -217,15 +229,29 @@ def trace_vinfo(self):
|
||||||
"""Return all trace callback information."""
|
"""Return all trace callback information."""
|
||||||
return map(self._tk.split, self._tk.splitlist(
|
return map(self._tk.split, self._tk.splitlist(
|
||||||
self._tk.call("trace", "vinfo", self._name)))
|
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):
|
class StringVar(Variable):
|
||||||
"""Value holder for strings variables."""
|
"""Value holder for strings variables."""
|
||||||
_default = ""
|
_default = ""
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None, value=None, name=None):
|
||||||
"""Construct a string variable.
|
"""Construct a string variable.
|
||||||
|
|
||||||
MASTER can be given as master widget."""
|
MASTER can be given as master widget.
|
||||||
Variable.__init__(self, master)
|
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):
|
def get(self):
|
||||||
"""Return value of variable as string."""
|
"""Return value of variable as string."""
|
||||||
|
|
@ -237,11 +263,17 @@ def get(self):
|
||||||
class IntVar(Variable):
|
class IntVar(Variable):
|
||||||
"""Value holder for integer variables."""
|
"""Value holder for integer variables."""
|
||||||
_default = 0
|
_default = 0
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None, value=None, name=None):
|
||||||
"""Construct an integer variable.
|
"""Construct an integer variable.
|
||||||
|
|
||||||
MASTER can be given as master widget."""
|
MASTER can be given as master widget.
|
||||||
Variable.__init__(self, master)
|
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):
|
def set(self, value):
|
||||||
"""Set the variable to value, converting booleans to integers."""
|
"""Set the variable to value, converting booleans to integers."""
|
||||||
|
|
@ -256,11 +288,17 @@ def get(self):
|
||||||
class DoubleVar(Variable):
|
class DoubleVar(Variable):
|
||||||
"""Value holder for float variables."""
|
"""Value holder for float variables."""
|
||||||
_default = 0.0
|
_default = 0.0
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None, value=None, name=None):
|
||||||
"""Construct a float variable.
|
"""Construct a float variable.
|
||||||
|
|
||||||
MASTER can be given as a master widget."""
|
MASTER can be given as master widget.
|
||||||
Variable.__init__(self, master)
|
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):
|
def get(self):
|
||||||
"""Return the value of the variable as a float."""
|
"""Return the value of the variable as a float."""
|
||||||
|
|
@ -268,12 +306,18 @@ def get(self):
|
||||||
|
|
||||||
class BooleanVar(Variable):
|
class BooleanVar(Variable):
|
||||||
"""Value holder for boolean variables."""
|
"""Value holder for boolean variables."""
|
||||||
_default = "false"
|
_default = False
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None, value=None, name=None):
|
||||||
"""Construct a boolean variable.
|
"""Construct a boolean variable.
|
||||||
|
|
||||||
MASTER can be given as a master widget."""
|
MASTER can be given as master widget.
|
||||||
Variable.__init__(self, master)
|
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):
|
def get(self):
|
||||||
"""Return the value of the variable as a bool."""
|
"""Return the value of the variable as a bool."""
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,9 @@ Extension Modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Patch #763580: Add name and value arguments to Tkinter variable
|
||||||
|
classes.
|
||||||
|
|
||||||
- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
|
- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
|
||||||
mime.types file for determining MIME types.
|
mime.types file for determining MIME types.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue