1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
5\page qtquick-tools-and-utilities.html
6\title Qt Quick Tools and Utilities
7\brief Lists the tools and utilities that enhance developer experience
9Qt offers several tools and utilities to enable a rich developer experience,
10especially for Qt Quick developers. The following sections provide a brief
11introduction to those tools and utilities, and provide links to further
12information about them.
16The \l{Qt Creator Manual}{Qt Creator} IDE is the key tool that enhances the overall developer
17experience of working with Qt and Qt Quick. Its editing, formatting, profiling and
18debugging features for Qt Quick make working with Qt Quick easier.
20\section1 Qt Design Studio
22\l{Qt Design Studio Manual}{Qt Design Studio} enables designing Qt Quick-based
23UIs using simple drag-n-drop gestures that most designers are familiar with.
24It offers UI elements from the Qt Quick and Qt Quick Controls modules, as well
25as integration for custom UI elements.
27\section1 Qt Quick Effect Maker
29\l{Qt Quick Effect Maker} is a tool for creating shader effects for Qt Quick with
30high productivity and performance. You can run Qt Quick Effect Maker as a
31standalone tool but it is also included in Qt Design Studio.
35The \l{Qt Creator: QML Debugger}{QML Debugger} is a very useful utility that
38 \li debugging JavaScript functions,
39 \li executing JavaScript expressions,
40 \li and inspecting QML properties.
43The QML debugger is part of both \e{Qt Creator} and \e{Qt Design Studio}.
47The \l{Qt Creator: QML Profiler}{QML Profiler} enables you to get necessary
48diagnostic information, allowing you to analyze the application code for
49performance issues. For example, too much JavaScript in each frame,
50long-running C++ functions, and so on.
52The profiler is part of both \e{Qt Creator} and \e{Qt Design Studio}.
56\l{QmlLive Manual}{QmlLive} is a 3rd party tool that offers a QML runtime
57capable of rendering changes to the code in realtime. It avoids the need to
58rebuild the application after every code change and install it on the target
59device. You can also extend it to build a custom runtime that suits your needs.
63\l{GammaRay Manual}{GammaRay} is a useful utility that provides diagnostic
64information about your application. It is similar to the QML Profiler described
65in the earlier section, but offers a lot more. For example, the number of items
66or QObjects created, function calls made, time taken by each function call,
67property value introspection at runtime, and so on. Such information is very
68handy, especially while debugging QML applications.
72\l{Squish GUI Test Automation Tool}{Squish} is a well-known testing tool that
73automates UI testing by recording your actions or running scripts. Once the
74tests are setup, UI tests are a lot easier to run.
78\l{qtquick-tool-qmllint.html}{qmllint} is a tool shipped with Qt, that verifies
79the syntatic validity of QML files. It also warns about some QML anti-patterns.
80If you want to disable a specific warning type, you can find the appropriate
81flag for doing so by passing \c{--help} on the command line.
85\e qmlformat is a tool that automatically formats QML files in accordance
86with the \l{QML Coding Conventions}.
88If you pass the \c{-n} or \c{--normalize} flag, \e qmlformat groups all
89properties, functions, and signals together, instead of retaining the order you
92By default, qmlformat writes the formatted version of the file to stdout.
93If you wish to have your file updated in-place specify the \c{-i} flag.
95You may also change tab widths and line ending types among other settings,
96either via command line options or by using a settings file called
97\c{.qmlformat.ini}. A default settings file can be obtained by passing the
98\c{--write-defaults} flag.
100As with all tools, the \c{-h} or \c{--help} flag will print some information on
101all the available options.
103\section1 Qt Quick Compiler
105The Qt Quick Compiler consist of two components:
107 \li \l {QML type compiler}
108 \li \l {QML script compiler}
111\section1 QML Language Server
113\l{QML Language Server} is a tool shipped with Qt that helps you edit
114QML code in your favorite (LSP-compatible) editor.