mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +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 | ||||
|     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 | ||||
|         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.""" | ||||
|  | @ -217,15 +229,29 @@ def trace_vinfo(self): | |||
|         """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 @@ def get(self): | |||
| 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 @@ def get(self): | |||
| 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 @@ def get(self): | |||
| 
 | ||||
| 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.""" | ||||
|  |  | |||
|  | @ -163,6 +163,9 @@ Extension Modules | |||
| 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. | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Martin v. Löwis
						Martin v. Löwis