【发布时间】:2014-01-24 05:56:32
【问题描述】:
有人可以评论一下对于QML,任何命令式JavaScript 代码都不会执行,除非它是extra component 的一部分。当我在我的 QML 中包含以下代码时,我遇到了这样的问题:
function qmlSlot(text){
page.data=text
if(page.data==="received")
page.color="black";
}
Qt 设计器冻结并显示以下警告:
Qt Quick Designer 不支持命令式代码
我读到构建 qmlpuppet 会在构建它的 Qt 的 /bin 目录中安装一个用于渲染组件的可执行文件。如果 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 时,我目前采取的解决方法是注释掉任何所谓的“命令式代码”。然后取出这些 cmets 以再次激活“命令式代码”。但这很烦人,尽管代码按我预期的方式编译和工作。
那么,我应该担心这个警告吗?无论如何,有什么办法可以摆脱这个问题,因为它冻结了 Qt 设计器?
【问题讨论】:
-
@Apokal - 谢谢!我已经添加了一些额外的信息和链接。
标签: c++ qt qml qtquick-designer