mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 18:28:49 +00:00 
			
		
		
		
	 76b645124b
			
		
	
	
		76b645124b
		
	
	
	
	
		
			
			Add __all__ to tkinter.__init__ and submodules. Replace 'import *' with explicit imports in some submodules.
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # tk common color chooser dialogue
 | |
| #
 | |
| # this module provides an interface to the native color dialogue
 | |
| # available in Tk 4.2 and newer.
 | |
| #
 | |
| # written by Fredrik Lundh, May 1997
 | |
| #
 | |
| # fixed initialcolor handling in August 1998
 | |
| #
 | |
| 
 | |
| #
 | |
| # options (all have default values):
 | |
| #
 | |
| # - initialcolor: color to mark as selected when dialog is displayed
 | |
| #   (given as an RGB triplet or a Tk color string)
 | |
| #
 | |
| # - parent: which window to place the dialog on top of
 | |
| #
 | |
| # - title: dialog title
 | |
| #
 | |
| 
 | |
| from tkinter.commondialog import Dialog
 | |
| 
 | |
| __all__ = ["Chooser", "askcolor"]
 | |
| 
 | |
| 
 | |
| #
 | |
| # color chooser class
 | |
| 
 | |
| class Chooser(Dialog):
 | |
|     "Ask for a color"
 | |
| 
 | |
|     command = "tk_chooseColor"
 | |
| 
 | |
|     def _fixoptions(self):
 | |
|         try:
 | |
|             # make sure initialcolor is a tk color string
 | |
|             color = self.options["initialcolor"]
 | |
|             if isinstance(color, tuple):
 | |
|                 # assume an RGB triplet
 | |
|                 self.options["initialcolor"] = "#%02x%02x%02x" % color
 | |
|         except KeyError:
 | |
|             pass
 | |
| 
 | |
|     def _fixresult(self, widget, result):
 | |
|         # result can be somethings: an empty tuple, an empty string or
 | |
|         # a Tcl_Obj, so this somewhat weird check handles that
 | |
|         if not result or not str(result):
 | |
|             return None, None # canceled
 | |
| 
 | |
|         # to simplify application code, the color chooser returns
 | |
|         # an RGB tuple together with the Tk color string
 | |
|         r, g, b = widget.winfo_rgb(result)
 | |
|         return (r/256, g/256, b/256), str(result)
 | |
| 
 | |
| 
 | |
| #
 | |
| # convenience stuff
 | |
| 
 | |
| def askcolor(color = None, **options):
 | |
|     "Ask for a color"
 | |
| 
 | |
|     if color:
 | |
|         options = options.copy()
 | |
|         options["initialcolor"] = color
 | |
| 
 | |
|     return Chooser(**options).show()
 | |
| 
 | |
| 
 | |
| # --------------------------------------------------------------------
 | |
| # test stuff
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     print("color", askcolor())
 |