User Interfaces

The Qt framework's main user interface technologies are Qt Quick and Qt Widgets. Qt Quick interfaces are fluid, dynamic, and are best on touch interfaces. Qt Widgets are for creating complex desktop applications. You can create Qt Quick and Qt Widgets interfaces with the target platform's native look and feel.

Building UIs with Qt Quick

Qt Quick is for creating dynamic and fluid user interfaces. The Qt Quick Controls module supplies QML types such as buttons, dialogs, and menus. You can use QML, a declarative language, to build the UI and JavaScript to implement the logic.

The following list contains related overviews:

Qt Widgets User Interfaces

Qt Widgets are the user interface elements that are typical in desktop environments. The widgets integrate well to the underlying platform providing native look and feel on Windows, Linux and macOS. The widgets are mature and feature rich user interface elements suitable for mostly traditional user interfaces. In contrast to Qt Quick, the widgets are for creating large desktop applications and less suited for creating touch-centric applications with fluid interfaces.

The following list contains related overviews for Qt Widgets:

Comparison of UI Interfaces

The following table compares Qt Widgets and Qt Quick interfaces.

Qt Quick / Qt Quick ControlsQt WidgetsComments
Used language(s)QML/JSC++
Native look and feel[Missing image ok][Missing image ok]Qt Widgets and Qt Quick Controls support native look and feel on their target platforms.
Custom styling[Missing image ok][Missing image ok]Qt Widgets provide customization with style sheets and Qt Quick Controls has a selection of customizable styles.
Fluid animated UIs[Missing image ok]Qt Widgets do not scale well for animations. Qt Quick offers a convenient and natural way to implement animations in a declarative manner.
Touch screen[Missing image ok]Qt Widgets often require a mouse cursor for good interaction, whereas Qt Quick provides QML types for touch interaction.
Standard industry widgets[Missing image ok]Qt Widgets provide all the bells and whistles, developed over two decades, needed for building standard industry type applications.
Model/View programming[Missing image ok][Missing image ok]Qt Quick provides convenient views, but Qt Widgets provide more convenient and complete framework. In addition to Qt Quick views, Qt Quick Controls provide a TableView.
Rapid UI development[Missing image ok][Missing image ok]Qt Quick is an excellent choice for rapid UI prototyping and development.
HW accelerated graphics[Missing image ok][Missing image ok]Qt provides full hardware acceleration for Qt Quick interfaces and Qt Widgets interfaces are rendered in software. The Graphics overview has more information.
Graphical effects[Missing image ok]Several Qt Quick modules provide graphical effects and Qt Widgets interfaces can use Qt GUI for effects.
Rich text processing[Missing image ok][Missing image ok]Qt Widgets currently provide the most comprehensive base for implementing text editors. Qt's rich text document classes can also be utilized in Qt Quick and Qt Quick Controls' TextArea, but may require some C++ implementation.

The following pages contain more information about designing and developing user interfaces:

© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.