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 |     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
	
	 Martin v. Löwis
						Martin v. Löwis