Qt/Win and API Layering vs. GUI emulation

Chris January chris at atomice.net
Mon Sep 5 10:14:42 CEST 2005

On 05/09/05, Michael O'Keeffe <michaelok at gmail.com> wrote:
> I see the following on the Qt/Win web site:
> "The Qt3/Windows Free Edition is a native win32 port of the gplŽed
> qt(r)/x11 sources. It use native win32 api and does not require cygwin."
> And this from the TrollTech site:
> " Qt/Windows uses the native Windows API and does not require any
> special additional libraries."
> According to Matthias Dalheimer's Programming with Qt book, Qt is a
> GUI-emulation toolkit.  "GUI-emulating toolkits don't use any
> native-toolkit calls at all.  Instead they use the drawing or graphics
> primitives of the respective platforms.  Each widget is drawn inside
> the emulating toolkit."  I believe I read the same in the TrollTech
> book, C++ GUI Programming with Qt.
> On the other hand, API layering is where the calls are mapped to the
> native API: "The wxWindows methods map to Win32 API calls on Windows
> and to either Motif or Xt API calls on Unix (as far as I know, no
> version exists for the MacOS X)."
> Is this still correct?  From the web sites, it seems to me Qt/Win uses
> API Layering.

Qt is a GUI emulation toolkit. It renders the widgets to have the same
look and feel as the native control classes but doesn't actually use
them. On Windows XP it uses the skin API to get the same L&F as other
XP applications.
When we say on our website that our port uses the native Win32 API
this is still true. The 'built-in' control classes and the commontrol
control classes are just a small subset of the Win32 API.


More information about the kde-cygwin mailing list