Gambas/libraries/gb.qt

About
is a Gambas library which provides functions for displaying and handling forms; it uses the Qt graphical library.There is also a component which does much the same but using the GTK+ graphical library, but it appears to be less fully implemented.

form display events

 * Open and Show are both called before the form has displayed
 * Activate is called when the form gets focus (title bar changes color, in most color schemes)
 * Enter is called whenever the mouse enters the drawing region of the form (menu bar & frame aren't included)
 * Leave is called whenever the mouse leaves the drawing region of the form
 * Deactivate is called whenever the form loses focus
 * nothing seems to trigger GotFocus and LostFocus; perhaps these are only used for controls (suggests the inheritance structure isn't set up quite right)

Unfortunately, there doesn't seem to be any event which is called exactly once, after the form is visible; the best kluge seems to be to put any such code in the Activate event and check/set a flag so it only gets called once.

drag-drop events
Some rules which seem to apply:
 * The Mouse location (Mouse.X and Mouse.Y) is not updated while the mouse is dragging anything; you get the mouse's location while dragging from the Drag object.
 * Normal mouse events are also not triggered while the mouse is dragging anything
 * In order for any element (form or control) to receive mouse events while the mouse is dragging anything, the element's Drop property must be set to TRUE
 * To get continuous updates on the mouse's movements, implement (control).DragMove and (form).DragMove. The control will only receive events while the mouse is inside it; the form will only receive events while the mouse is not inside another drop-enabled control. Use the form events to detect when the mouse has left the control area.

Links

 * official reference