Qt is a mature C++ framework for building cross-platform, native GUI applications that target Windows, Mac, Linux, mobile, and embedded platforms. PyQt (and PySide) provides python bindings for the Qt library, and allows one to quickly and easily build GUI applications in pure Python. While web-based and mobile development gets all the attention these days, there are still many use-cases for which native apps are much more suitable. Qt provides an extremely rich and well-designed set of classes to build complex user interfaces both visually (with Qt Designer) and programmatically, and PyQt makes building native apps incredibly fast and easy. This tutorial will introduce the main ideas and modules in Qt and how the bindings work, and demonstrate building an application from scratch with PyQt.