12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # base class for tk common dialogues
- #
- # this module provides a base class for accessing the common
- # dialogues available in Tk 4.2 and newer. use filedialog,
- # colorchooser, and messagebox to access the individual
- # dialogs.
- #
- # written by Fredrik Lundh, May 1997
- #
- __all__ = ["Dialog"]
- from tkinter import Frame
- class Dialog:
- command = None
- def __init__(self, master=None, **options):
- if not master:
- master = options.get('parent')
- self.master = master
- self.options = options
- def _fixoptions(self):
- pass # hook
- def _fixresult(self, widget, result):
- return result # hook
- def show(self, **options):
- # update instance options
- for k, v in options.items():
- self.options[k] = v
- self._fixoptions()
- # we need a dummy widget to properly process the options
- # (at least as long as we use Tkinter 1.63)
- w = Frame(self.master)
- try:
- s = w.tk.call(self.command, *w._options(self.options))
- s = self._fixresult(w, s)
- finally:
- try:
- # get rid of the widget
- w.destroy()
- except:
- pass
- return s
|