| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __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 |
| |
|
| | def _fixresult(self, widget, result): |
| | return result |
| |
|
| | def show(self, **options): |
| |
|
| | |
| | for k, v in options.items(): |
| | self.options[k] = v |
| |
|
| | self._fixoptions() |
| |
|
| | |
| | |
| | w = Frame(self.master) |
| |
|
| | try: |
| |
|
| | s = w.tk.call(self.command, *w._options(self.options)) |
| |
|
| | s = self._fixresult(w, s) |
| |
|
| | finally: |
| |
|
| | try: |
| | |
| | w.destroy() |
| | except: |
| | pass |
| |
|
| | return s |
| |
|