Introduction to QT

Lecture



Qt is a cross-platform software development toolkit in the C ++ programming language. There are also "bindings" to many other programming languages: Python - PyQt, PySide; Ruby - QtRuby; Java - Qt Jambi [9] ; PHP - PHP-Qt and others.

It allows you to run software written with it in most modern operating systems by simply compiling the program for each OS without changing the source code. It includes all the main classes that may be required in the development of application software, ranging from GUI elements and ending with classes for working with the network, databases and XML. Qt is fully object-oriented, easily extensible, and supports component programming techniques.

There are library versions for Microsoft Windows, UNIX class systems with X11 graphics, Android, iOS, Mac OS X, Microsoft Windows CE, QNX, embedded Linux systems and the S60 platform. Porting to Windows Phone and Windows RT is in progress. There is also porting to Haiku and Tizen.

Until recently, the Qt library was also distributed in another version: Qt / Embedded. Now this platform is renamed Qtopia Core and is distributed as a separate product. Qtopia Core provides basic functionality for the entire line of platforms designed to develop applications for embedded and mobile devices (PDAs, smartphones, etc.).

Starting with version 4.5, Qt is distributed under 3 licenses (regardless of the license, the Qt source code is the same):

  • Qt Commercial - for software development with a proprietary license, allowing modification of Qt itself without disclosing changes;
  • GNU GPL - for open source software development, distributed under the terms of the GNU GPL;
  • GNU LGPL - for software development with a proprietary license, but without making changes to Qt.

Up to version 4.0.0, only Qt / Mac, Qt / X11, Qt / Embedded, but starting from 4.0.0 (released at the end of June 2005), Qt Software “released” and Qt / Windows were distributed under a free license. It should be noted that there were third-party free versions of Qt / Windows <4.0.0, made on the basis of Qt / X11.

Since its introduction in 1996, the Qt library has become the basis for thousands of successful projects [13] around the world. In addition, Qt is the foundation of the popular KDE desktop environment, which is part of many Linux distributions.

A distinctive feature of Qt from other libraries is the use of the Meta Object Compiler (MOC) - a preliminary source code processing system (in general, Qt is a library not for pure C ++, but for its special adverb, from which it "translates" MOC for subsequent compilation with any standard C ++ compiler). MOC allows you to increase the power of libraries many times by introducing such concepts as slots and signals . In addition, it allows you to make the code more concise. The MOC utility searches the C ++ header files for class descriptions containing the Q_OBJECT macro, and creates an additional C ++ source file containing meta-object code.

Qt allows you to create your own plugins and place them directly in the visual editor panel. There is also the possibility of expanding the usual functionality of the widgets associated with placing them on the screen, display, redraw when the window is resized.

Qt is bundled with a visual Qt Designer GUI development environment that allows you to create dialogs and forms in WYSIWYG mode. Qt comes with Qt Linguist, a graphical utility that allows you to simplify the localization and translation of the program into many languages; and "Qt Assistant" is a Qt help system that simplifies working with library documentation and also allows you to create cross-platform help for Qt-based software. Starting with version 4.5.0, the Qt Creator development environment has been included with Qt, which includes a code editor, help, Qt Designer graphical tools, and the ability to debug applications. Qt Creator can use GCC or Microsoft VC ++ as a compiler and GDB as a debugger. For Windows versions, the library is completed with MinGW compiler, header and object files.


Comments


To leave a comment
If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Cross platform programming

Terms: Cross platform programming