Native widgets are widgets (that is, GUI elements) made available through the underlying window system. This is in contrast to an application drawing its own widgets using low-level window system operations. The distinction between these is mainly relevant when talking about cross-platform user interface programming.

When programming a cross-platform GUI toolkit, the choice between native widgets and drawing your own widgets is a very important one. A toolkit that draws its own widgets, like Qt, may look slightly 'off' and won't follow window system-level themeing, but can provide exactly the same API on all platforms. A native-widget based toolkit, on the other hand, such as wxWindows, allows applications that use it to blend in with other applications running on the same platform. Unfortunately, due to the difference in capabilities of the various native widget libraries, wxWindows has subtly different APIs on different platforms. Also, X11 does not have native widgets, so an X11-specific toolkit, usually GTK+ or Motif, must be used instead. Nevertheless, native-widget-based toolkits are often used, since it is simpler than writing three (or more) completely different front ends for a cross-platform application. A third option, where the application itself draws the widgets, is rarely used, with the notable exception of Mozilla.

This writeup is copyright 2003 D.G. Roberge and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at .