QML - 不支持命令式代码

时间:2014-01-24 05:56:33

标签: c++ qt qml qtquick-designer

有人可以对QML这样的事实发表评论,除非它是extra component的一部分,否则不会执行任何命令式JavaScript代码。当我将以下代码包含在我的QML中时,我遇到了这样的问题:

function qmlSlot(text){
    page.data=text
    if(page.data==="received")
        page.color="black";
}

当Qt Designer被冻结并显示以下警告时:

  

Qt Quick Designer

不支持命令代码

我读到构建 qmlpuppet 会安装一个可执行文件,用于在构建它的Qt的/bin目录中呈现组件。如果qmlpuppet位于/ bin目录中, Qt Quick Designer 将检查当前项目的Qt。如果是,则需要Qt版本提供的qmlpuppet而不是Qt Creator本身提供的qmlpuppet。在我的情况下,我没有使用Qt静态二进制安装,而是从源代码构建了Qt,因此生成了qmlpuppet可执行文件,并且已经位于:

/usr/local/Qt-5.2.1/qtcreator/bin
-rwxr-xr-x  1 qml2puppet
-rwxr-xr-x  1 qmlpuppet

因此,可执行文件qmlpuppet被放置在预期会被找到的地方,并且这个恼人的消息仍在继续。

我现在采取的解决方法是在我想使用Qt Designer编辑前端QML时,注释掉任何所谓的“命令式代码”。然后拿出那些评论后再次激活“命令代码”。但这非常令人讨厌,尽管代码编译并按我预期的方式工作。

那么,我应该担心这个警告吗?无论如何,有一些意思是摆脱这个问题,因为它冻结了Qt设计师?