Widgetset

Interaction of class libraries and widgetsets in Lazarus and Free Pascal

Widgetsets support platform-sensitive development with the Lazarus IDE system. They act as adapter libraries that provide an interface between a platform-independent sourcecode written in Free Pascal and platform-specific system functions. Thus they allow for development of platform-native software without requiring to provide specific source code for different target platforms.

Widgetsets act as basis for the Lazarus Component Library (LCL).

## Available widgetsets

[edit]

Currently (June 2020), the development status of widget toolkit interfaces is roughly as follows:[1]

Widget set  | Supported operating systems  | Status

|
|

Windows API, GDI | Windows | Mainstream use
Windows CE API, GDI | Windows CE | Mainstream use
GTK+ 1.2.x | Linux (via X11) | Deprecated
GTK+ 2.8+ | Linux (X11 and framebuffer), Windows, and Mac OS X (via X11) | Mainstream use
GTK+ 3.x | As Gtk2 | Alpha
Qt 4.5+, 5.6+[2] | Linux (X11 and framebuffer), Windows, Mac OS X | Mainstream use. Works in Windows, Linux, Mac OS X, Maemo, etc
Cocoa | Mac OS X | In progress
Carbon | Mac OS X | Mainstream use
fpGUI | Windows, Windows CE, Linux (via X11) | Initial stage
Lazarus Custom Drawn Controls | Android, Windows, Linux (via X11), Mac OS X | Initial stage

## References

[edit]

1. ^ * Widgetset reference at the Free Pascal wiki
2. ^ https://wiki.lazarus.freepascal.org/Qt5_Interface Qt

## Further reading

[edit]

* Michaël van Canneyt; Florian Klämpfl (2012), Free Pascal (Free Pascal 2 ed.), Computer & Literatur Verlag GmbH, ISBN 978-3936546729, OL 25421359M, 393654672X
* Michaël van Canneyt; Mattias Gärtner; Swen Heinig; Felipe Monteiro de Carvalho; Inoussa Ouedraogo; Jörg Braun (2011), Lazarus, Böblingen, Germany: Computer & Literatur Verlag GmbH, OL 25426539M
* Michaël van Canneyt; Mathias Gärtner; Swen Heinig; Felipe Monteiro de Carvalho; Inoussa Ouedraogo (2011), Lazarus - the complete guide, Blaise Pascal Magazine, OL 25427992M
* Roderick Person (2013), Getting Started with Lazarus IDE, Packt Publishing, ISBN 978-1782163404, OL 25426631M, 1782163409