mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| OptionMenu widget modified to allow dynamic menu reconfiguration
 | |
| and setting of highlightthickness
 | |
| """
 | |
| from Tkinter import OptionMenu
 | |
| from Tkinter import _setit
 | |
| import copy
 | |
| 
 | |
| class DynOptionMenu(OptionMenu):
 | |
|     """
 | |
|     unlike OptionMenu, our kwargs can include highlightthickness
 | |
|     """
 | |
|     def __init__(self, master, variable, value, *values, **kwargs):
 | |
|         #get a copy of kwargs before OptionMenu.__init__ munges them
 | |
|         kwargsCopy=copy.copy(kwargs)
 | |
|         if 'highlightthickness' in kwargs.keys():
 | |
|             del(kwargs['highlightthickness'])
 | |
|         OptionMenu.__init__(self, master, variable, value, *values, **kwargs)
 | |
|         self.config(highlightthickness=kwargsCopy.get('highlightthickness'))
 | |
|         #self.menu=self['menu']
 | |
|         self.variable=variable
 | |
|         self.command=kwargs.get('command')
 | |
|     
 | |
|     def SetMenu(self,valueList,value=None):
 | |
|         """
 | |
|         clear and reload the menu with a new set of options.
 | |
|         valueList - list of new options
 | |
|         value - initial value to set the optionmenu's menubutton to 
 | |
|         """
 | |
|         self['menu'].delete(0,'end')
 | |
|         for item in valueList:
 | |
|             self['menu'].add_command(label=item,
 | |
|                     command=_setit(self.variable,item,self.command))
 | |
|         if value:
 | |
|             self.variable.set(value)
 | 
