with the risk of sounding like a idiot but what is the difference? |
On a modern, consumer OS such as Windows, you draw on the screen essentially by asking the operating system to do it for you, through a set of functions provided by the operating system (commonly known as an API). One such set of functions, found on 32 (and now 64) bit Windows operating systems is known as the "Win 32 API".
The API provided by an OS tends to be quite low-level, and also (obviously) not cross-platform. The Win 32 API functions you would call simply do not exist on other operating systems.
Imagine, if you will, creating a set of your own functions and libraries that present the user a simplified set of functions, and those functions internally call the Win 32 API - they act as an intermediary. The user exchanges the power of directly using the Win 32 API (or similar) for the convenience of the easier set of functions. Qt (and many others like it) are this; a simplified set of functions and libraries to make it easier for you to draw on the screen.
This model of an intermediary set of functions also allows us to make your code cross-platform; on each platform, the QT library functions are the same. Internally, they call whatever functions are appropriate to the OS' provided API, so as long as the
widget toolkit, as libraries like QT are called, exists for each target platform, your code is cross-platform.