调试 QML

日志

console.log can be used to print debugging information to the console. For example:

Rectangle {
    width: 200; height: 200
    MouseArea {
        anchors.fill: parent
        onClicked: console.log("clicked")
    }
}
					
					

调试过渡

When a transition doesn't look quite right, it can be helpful to view it in slow motion to see what is happening more clearly. This functionality is supported in the QML 查看器 tool: to enable this, click on the "Debugging" menu, then "Slow Down Animations".

调试模块导入

The QML_IMPORT_TRACE environment variable can be set to enable debug output from QML's import loading mechanisms.

For example, for a simple QML file like this:

import QtQuick 1.0
Rectangle { width: 100; height: 100 }
					

若设置 QML_IMPORT_TRACE=1 before running the QML 查看器 (or your QML C++ application), you will see output similar to this:

QDeclarativeImportDatabase::addImportPath "/qt-sdk/imports"
QDeclarativeImportDatabase::addImportPath "/qt-sdk/bin/QMLViewer.app/Contents/MacOS"
QDeclarativeImportDatabase::addToImport 0x106237370 "." -1.-1 File as ""
QDeclarativeImportDatabase::addToImport 0x106237370 "Qt" 4.7 Library as ""
QDeclarativeImportDatabase::resolveType "Rectangle" = "QDeclarativeRectangle"
					
					

采用 Qt Creator 调试

Qt Creator provides built-in support for QML debugging. QML projects and standalone C++ applications that utilize QML can be debugged on desktops as well as on remote devices. For more information, see the Qt Creator Manual.