mirror of
				https://github.com/python/cpython.git
				synced 2025-10-27 19:54:38 +00:00 
			
		
		
		
	 adbed2d542
			
		
	
	
		adbed2d542
		
			
		
	
	
	
	
		
			
			Previously, checkbuttons in different parent widgets could have the same short name and share the same state if arguments "name" and "variable" are not specified. Now they are globally unique.
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # dialog.py -- Tkinter interface to the tk_dialog script.
 | |
| 
 | |
| from tkinter import _cnfmerge, Widget, TclError, Button, Pack
 | |
| 
 | |
| __all__ = ["Dialog"]
 | |
| 
 | |
| DIALOG_ICON = 'questhead'
 | |
| 
 | |
| 
 | |
| class Dialog(Widget):
 | |
|     def __init__(self, master=None, cnf={}, **kw):
 | |
|         cnf = _cnfmerge((cnf, kw))
 | |
|         self.widgetName = '__dialog__'
 | |
|         self._setup(master, cnf)
 | |
|         self.num = self.tk.getint(
 | |
|                 self.tk.call(
 | |
|                       'tk_dialog', self._w,
 | |
|                       cnf['title'], cnf['text'],
 | |
|                       cnf['bitmap'], cnf['default'],
 | |
|                       *cnf['strings']))
 | |
|         try: Widget.destroy(self)
 | |
|         except TclError: pass
 | |
| 
 | |
|     def destroy(self): pass
 | |
| 
 | |
| 
 | |
| def _test():
 | |
|     d = Dialog(None, {'title': 'File Modified',
 | |
|                       'text':
 | |
|                       'File "Python.h" has been modified'
 | |
|                       ' since the last time it was saved.'
 | |
|                       ' Do you want to save it before'
 | |
|                       ' exiting the application.',
 | |
|                       'bitmap': DIALOG_ICON,
 | |
|                       'default': 0,
 | |
|                       'strings': ('Save File',
 | |
|                                   'Discard Changes',
 | |
|                                   'Return to Editor')})
 | |
|     print(d.num)
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     t = Button(None, {'text': 'Test',
 | |
|                       'command': _test,
 | |
|                       Pack: {}})
 | |
|     q = Button(None, {'text': 'Quit',
 | |
|                       'command': t.quit,
 | |
|                       Pack: {}})
 | |
|     t.mainloop()
 |