QML - 不支持命令式代码
Posted
技术标签:
【中文标题】QML - 不支持命令式代码【英文标题】:QML - Imperative code not supported 【发布时间】: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 设计器?
【问题讨论】:
看看这个qt-project.org/forums/viewthread/25270 @Apokal - 谢谢!我已经添加了一些额外的信息和链接。 【参考方案1】:这是目前报告的 QtCreator 错误:
https://bugreports.qt-project.org/browse/QTCREATORBUG-10940?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab
https://bugreports.qt.io/browse/QTCREATORBUG-10940
所以不要担心警告,它会被修复
【讨论】:
以上是关于QML - 不支持命令式代码的主要内容,如果未能解决你的问题,请参考以下文章