dialog_reopen_example
Short description
This examples demonstrates, how a dialog can be closed from its own handler, just to be opened again.
Warning
There are very rare occasions, where you should need this. Use this approach only, if you know what you are doing.
Highlights
The approach consists of two steps. First, declare a guard variable that yields True
if the dialog should be reopened.
[...]
reopen = True
while reopen:
gom.script.sys.show_user_defined_dialog (dialog=DIALOG)
The example dialog contains a button to close/reopen the dialog (see top image). One of the few use cases could be, that you need to adapt the filter
property of an Selection element
widget after some dialog interaction, which can only be done when the dialog is closed.
To achieve this, the dialog event handler is used:
def dialog_event_handler (widget):
global reopen
if str(widget) == "initialize":
reopen = False
if widget == DIALOG.button:
gom.script.sys.close_user_defined_dialog (dialog=DIALOG)
gom.script.sys.delay_script (time=1) # Do stuff while dialog is closed
reopen = True
Warning
Never reopen the dialog directly from its own handler to prevent getting undefined behaviour.