Gambas/libraries/gb.qt

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< Gambas‎ | libraries
Revision as of 01:40, 26 July 2008 by Woozle (talk | contribs) (Reverted edits by 89.149.253.12 (Talk); changed back to last version by Woozle)
Jump to navigation Jump to search

Navigation

{{#lst:Gambas reference|navbar}}: gb.qt

Overview

gb.qt is a Gambas library which provides functions for displaying and handling forms; it uses the Qt graphical library.

This is a growing seedling article. You can help HTYP by watering it.

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)

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