/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page qmldebugging.html \title Debugging QML \section1 Logging console.log can be used to print debugging information to the console. For example: \qml Rectangle { width: 200; height: 200 MouseRegion { anchors.fill: parent onClicked: console.log("clicked") } } \endqml \section1 The QML Inspector The \c qmldebugger tool provides an experimental inspector to aid with debugging. It can be run as a Qt Creator plugin or as a standalone application. \section2 Qt Creator plugin The Qt Creator plugin currently builds against Qt Creator 1.3. To build the Qt Creator plugin: \list \o Set an environment variable \c CREATOR_SRC_DIR that points to the Qt Creator source directory \o Set an environment variable \c CREATOR_BUILD_DIR that points to the Qt Creator build directory \o Run \c qmake on \c $QTDIR/tools/qmldebugger/qmldebugger.pro \endlist This builds the plugin into your Qt Creator installation. The plugin adds a "QML Inspect" mode into Qt Creator that provides: \list \o An object tree showing all objects and their children \o The current property values for the object selected in the object tree (this table is dynamically updated for all properties that have property changed notifications) \o An expression evaluator for querying and setting values dynamically \o A table of watched properties (double-click on a property in the property table to add it to the watch table) \o A graph that shows the frame rate of your application \endlist To start the debugger, open a QML project and click the "QML Inspect" mode, then click the green "play" button in the toolbar of the bottom-right debugger window. \image qmldebugger-creator.png \section2 Standalone qmldebugger tool To run the standalone \c qmldebugger tool, set an environment variable \c QML_DEBUG_SERVER_PORT to an available port number and run the \c qmlviewer. For example: \code QML_DEBUG_SERVER_PORT=3768 qmlviewer myqmlfile.qml \endcode Then in another process, start the \c qmldebugger tool, enter the port number into the corresponding spinbox in the top right hand corner, and press the "Connect" button. \section1 Debugging Transitions When a transition doesn't look quite right, it can be helpful to view it in slow motion to see more clearly what is happening. \l {qmlviewer} provides a menu option "Slow Down Animations" to facilitate this. */