有人可以评论一下,除非它是额外组件QML
的一部分,否则任何命令式代码都不会执行。当我在我的 QML 中包含以下代码时,我遇到了这样的问题:JavaScript
function qmlSlot(text){
page.data=text
if(page.data==="received")
page.color="black";
}
当 Qt Designer 被冻结并显示以下警告时:
Qt Quick Designer 不支持命令式代码
我读到构建qmlpuppet/bin
会在构建它的 Qt 目录中安装一个用于渲染组件的可执行文件。如果 qmlpuppet 在 /bin 目录中, Qt Quick Designer会检查当前项目的 Qt。如果是,则使用 Qt 版本提供的 qmlpuppet,而不是 Qt Creator 本身提供的。在我的情况下,我没有使用 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?