# Introduction to Controls

Using Qt Quick from scratch gives you primitive graphical and interaction elements from which you can build your user interfaces. Using Qt Quick Controls you start from a slightly more structured set of controls to build from.

The controls range from simple text labels and buttons to more complex ones such as sliders and dials. These elements are handy if you want to create a user interface based on classic interaction patterns, as they provide a good foundation to stand on.

Qt Quick Controls come with a number of styles out of the box that are shown in the table below. The *Basic* style is a basic flat style. The *Universal* style is based on the Microsoft Universal Design Guidelines, while *Material* is based on Google’s Material Design Guidelines, and the *Fusion* style is a desktop-oriented style.

Some of the styles can be tweaked by modifying palettes. The *Imagine* style is based on image assets, this allows a graphical designer to create a new style without writing any code at all, not even for palette colour codes.

* Basic

  ![](/files/LKiptmZrQ0wXXw07WW6L)
* Fusion

  ![](/files/4eKpYaU14ibeeRgR32eE)
* macOS

  ![](/files/Z4DQ4wZDuR2mqJsk9EL2)
* Material

  ![](/files/p3Sdhq5qRU5d7VAtYu1u)
* Imagine

  ![](/files/Z4DQ4wZDuR2mqJsk9EL2)
* Windows

  ![](/files/Z4DQ4wZDuR2mqJsk9EL2)
* Universal

  ![](/files/0tTKJ3iNIOEhDYyah1k5)

Qt Quick Controls 2 is available from the `QtQuick.Controls` import. The following modules are also of interest:

* **`QtQuick.Controls`** - The basic controls.
* **`QtQuick.Templates`** - Provides the behavioral, non-visual base types for the controls.
* **`QtQuick.Controls.Imagine`** - Imagine style theming support.
* **`QtQuick.Controls.Material`** - Material style theming support.
* **`QtQuick.Controls.Universal`** - Universal style theming support.
* **`Qt.labs.platform`** - Support for platform native dialogs for common tasks such as picking files, colours, etc, as well as system tray icons and standard paths.

{% hint style="warning" %}
Qt.Labs Notice that the `Qt.labs` modules are experimental, meaning that their APIs can have breaking changes between Qt versions.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.novaflowos.com/start/qt6-qml-book/readme/ch06-controls/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
