In the first half of the chapter, we successfully created a Qt application, using the C++ programming language. Then, we also learned how to create the same calculator program, using Qt Quick and the QML scripting language. Throughout these two examples, we have learned the differences between both methods, to allow us to decide which method is best suited for our project.
Qt comes with not one, but two, complementary graphical user interface (GUI) toolkits: Qt Widgets, which takes a traditional widget-based approach to GUI development, and Qt Quick, which provides a declarative approach better suited for platform-agnostic user interfaces for media boxes, some cell phone applications, automobile dashboards, and other embedded environments. For both, Qt offers Qt Designer, a drag-and-drop environment that lets you construct, configure, and preview your user interface as you build your application.
Next, we saw how core to Qt is the notion of signals and slots, Qt's answer to callbacks and events, to handle the late binding required of today's GUI applications. Qt objects can emit signals, which are type-safe function declarations, and other objects can connect to those signals, triggering method calls when the signals are emitted.
In the next chapter, you'll take a break from learning about Qt Creator and GUI development to focus on some fundamental capabilities provided by Qt, such as data structures, file I/O, networking with HTTP, and XML parsing.