有人能对这一事实发表评论吗?对于 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?