Extending QPanels to Create Modal "Dialog Boxes"
In general UI programming, there are two kinds of dialog boxes: modal and non-modal. Modal dialog boxes are
the most common. When a program displays a modal dialog box, the user cannot switch between the dialog box
and the program's main UI. The user must explicitly close the dialog box, usually by clicking either "Ok" or "Cancel".
Obviously, with the current state of HTML and browser technologies, the alert()
is still the only true
way to have any level of a modal dialog interaction. And unfortuantely,
has very few features in terms of functionality. Some web applications do attempt to use
pop-up windows with onblur()
events as a way to mimick
dialog modality, but this is not considered
a very clean or usable approach.
, a standard extension to the QPanel
control is the QDialogBox
, which gives you
modal-like qualities in a control that can look and act like a stand-alone modal dialog box.
Because it extends the QPanel
control, you have full use of all the QPanel's
to build and design the content of the dialog box, itself, including using separate template files and
adding child controls, events, actions and validation.
The two examples below show a simple "display only" dialog box, and a more complex dialog box that is meant to be a
"calculator widget" with intra-control communication, where the contents of the calculator in the dialog box
can be copied into a textbox on the main form.