Chapter 7. Libraries

7.1. Introduction

An conforming implementation shall support the following Qt libraries which provide interfaces for creating rich user applications, either graphical or console.

QtCore 

A general-purpose application development library, not specific to graphical user interfaces. QtCore provides a main loop, threading classes, tool classes, template container classes, IO classes, and so on.

QtGui 

The GUI part of Qt, provides a paint engine, text rendering engine, widgets, printing, PDF generation, accessibility classes, and so on.

QtXml 

The XML support for Qt, provides fast XML parsing and DOM classes to traverse the XML tree.

QtOpenGL 

The OpenGL integration for Qt, provides OpenGL rendering and embedding.

QtSql 

The database part of Qt, provides access to databases and models that connect databases into the model/view framework of QtGui.

QtSvg 

Renders Svg files into any context, for displaying on the screen, printing or embedding in PDF.

QtNetwork 

Provides network server and client classes, TCP/IP, UDP, Http, Ftp, Url parsing support, and so on.

There are three main parts to the definition of each of these libraries.

The "Interfaces" section defines the required library name and version, and the required public symbols (interfaces and global data), as well as symbol versions, if any.

The "Interface Definitions" section provides complete or partial definitions of certain interfaces where either this specification is the source specification, or where there are variations from the source specification. If an interface definition requires one or more header files, one of those headers shall include the function prototype for the interface.

For source definitions of interfaces which include a reference to a header file, the contents of such header files form a part of the specification. The "Data Definitions" section provides the binary-level details for the header files from the source specifications, such as values for macros and enumerated types, as well as structure layouts, sizes and padding, etc. These data definitions, although presented in the form of header files for convenience, should not be taken a representing complete header files, as they are a supplement to the source specifications. Application developers should follow the guidelines of the source specifications when determining which header files need to be included to completely resolve all references.

Note: While the Data Definitions supplement the source specifications, this specification itself does not require conforming implementations to supply any header files.