Qt is a cross-platform application development framework widely used for graphical programs (GUI) and also for non-GUI tools.
Qt was developed by Trolltech (now owned by Nokia), and it's probably best known for being the foundation of the K Desktop Environment (KDE) for Linux.
The Qt toolkit is a collection of classes made to simplify the creation of programs. Qt is more than just a GUI toolkit. It includes components for abstractions of network sockets, threads, Unicode, regular expressions, SQL databases, SVG, OpenGL, and XML. It also has a fully functional web browser, help system, multimedia framework, and rich collection of GUI widgets.
Qt is available on several platforms, particularly Unix/Linux, Windows, macOS X, and also some embedded devices. As it uses native APIs of the platform to render the Qt controls, applications developed with Qt have a look and feel that fits the running environment (without looking like something alien in it).
Though written in C++, Qt can also be used in several other programming languages through language bindings available for Ruby, Java, Perl, and also Python with PyQt.
PyQt 5 is available for both Python 2.x and 3.x, but in this book, we will consistently use Python 3 in all our code. PyQt 5 has over 620 classes and 6,000 functions and methods. Before we go into some examples, it is important to know the difference between Qt 4/PyQt 4 and Qt 5/PyQt 5.