/**************************************************************************** ** ** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page qtquick-tools-and-utilities.html \title Qt Quick Tools and Utilities \brief Lists the tools and utilities that enhance developer experience Qt offers several tools and utilities to enable a rich developer experience, especially for Qt Quick developers. The following sections provide a brief introduction to those tools and utilities, and provide links to further information about them. \section1 Qt Creator The \l{Qt Creator Manual}{Qt Creator} IDE is the key tool that enhances the overall developer experience of working with Qt and Qt Quick. Its editing, formatting, profiling and debugging features for Qt Quick make working with Qt Quick easier. \section1 Qt Design Studio \l{Qt Design Studio} enables designing Qt Quick-based UIs using simple drag-n-drop gestures that most designers are familiar with. It offers UI elements from the Qt Quick and Qt Quick Controls modules, as well as integration for custom UI elements. \section1 QML Debugger The \l{QML debugger} is a very useful utility that enables: \list \li debugging JavaScript functions, \li executing JavaScript expressions, \li and inspecting QML properties. \endlist The QML debugger is part of both \l{Qt Creator} and \l{Qt Design Studio}. \section1 QML Profiler The \l{QML profiler} enables you to get necessary diagnostic information, allowing you to analyze the application code for performance issues. For example, too much JavaScript in each frame, long-running C++ functions, and so on. The profiler is part of both \l{Qt Creator} and \l{Qt Design Studio}. \section1 QmlLive \l{QmlLive} is a 3rd party tool that offers a QML runtime capable of rendering changes to the code in realtime. It avoids the need to rebuild the application after every code change and install it on the target device. You can also extend it to build a custom runtime that suits your needs. \section1 GammaRay \l{GammaRay} is a useful utility that provides diagnostic information about your application. It is similar to the QML Profiler described in the earlier section, but offers a lot more. For example, the number of items or QObjects created, function calls made, time taken by each function call, property value introspection at runtime, and so on. Such information is very handy, especially while debugging QML applications. \section1 Squish \l{Squish} is a well-known testing tool that automates UI testing by recording your actions or running scripts. Once the tests are setup, UI tests are a lot easier to run. \section1 qmllint \l{qmllint} is a tool shipped with Qt, that verifies the syntatic validity of QML files. It also warns about some QML anti-patterns. If you want to disable a specific warning type, you can find the appropriate flag for doing so by passing \c{--help} on the command line. See the full documentation page of \l{qmllint} for details. \section1 qmlformat \e qmlformat is a tool that automatically formats QML files in accordance with the \l{QML Coding Conventions}. The tool groups all properties, functions, and signals together, instead of retaining the order you specified. Imports will also be sorted in alphabetical order. This can be disabled by specifying the \c{-n} flag. By default, qmlformat writes the formatted version of the file to stdout. If you wish to have your file updated in-place specify the \c{-i} flag. You may also change tab widths and line ending types among other settings, either via command line options or by using a settings file. \section1 qmltc \l{QML Type Compiler}{qmltc} is a tool that compiles QML types to C++ classes. Its generated output acts as an alternative to the QQmlComponent-based object creation. Once enabled through \l{qt_target_compile_qml_to_cpp}{CMake}, \c qmltc runs ahead of time during your project build phase. To make use of the compiled C++, you \e must modify your application-side C++ code (in particular, the way you instantiate QML objects from C++). See the full documentation page of \l{QML Type Compiler}{qmltc} for details. */