Gambas/libraries/gb.qt
Jump to navigation
Jump to search
About
gb.qt is a Gambas library which provides functions for displaying and handling forms; it uses the Qt graphical library.
There is also a gb.gtk component which does much the same but using the GTK+ graphical library, but it appears to be less fully implemented.
Events
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)
- Unknown:
- Arrange()
- BeforeArrange() - presumably related to Arrange()
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.