QML - 不支持命令式代码

8

有人能对这一事实发表评论吗?对于 QML,除非它是 额外组件 的一部分,否则任何命令式的 JavaScript 代码都不会被执行。当我将以下代码包含到我的 QML 中时,我遇到了这样的问题:

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

当Qt Designer冻结并显示以下警告时:
“在Qt Quick Designer中不支持命令式代码”
我了解到构建qmlpuppet会安装一个可执行文件,用于在构建Qt的/bin目录中呈现组件。Qt Quick Designer会检查当前项目的Qt是否在/bin目录中提供了qmlpuppet。如果是,则使用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 Designer?


2
请查看此链接:http://qt-project.org/forums/viewthread/25270 - gdbcore
@Apokal - 谢谢!我已经添加了一些额外的信息和链接。 - Viktor Kovaleva
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接