QML — императивный код не поддерживается

Может кто-то прокомментировать тот факт, что для QMLлюбой императив JavaScript код не выполняется, если он не является частью дополнительный компонент. Я сталкиваюсь с такой проблемой, когда добавляю следующий код в свой QML:

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

Поскольку Qt Designer зависает и показывает следующее предупреждение:

Императивный код не поддерживается в Qt Quick Designer

Я читал это здание qmlpuppet устанавливает исполняемый файл для рендеринга компонентов в /bin каталог сборки Qt. Qt Quick Designer проверяет Qt текущего проекта, если qmlpuppet находится в каталоге / bin. Если да, то он использует qmlpuppet, предоставленный версией Qt, а не предоставленный самим Qt Creator. В моем случае я не использовал статическую двоичную установку Qt, а собрал Qt из исходного кода, таким образом qmlpuppet исполняемый файл создан и уже находится по адресу:

/usr/local/Qt-5.2.1/qtcreator/bin
-rwxr-xr-x  1 qml2puppet
-rwxr-xr-x  1 qmlpuppet

Таким образом, исполняемый файл qmlpuppet помещается туда, где ожидается его обнаружение, и все же это раздражающее сообщение продолжается.

Обходной путь, который я выбрал на данный момент, — закомментировать любой так называемый «императивный код», когда я хочу редактировать интерфейсный QML с помощью Qt Designer. Затем выньте эти комментарии, чтобы снова активировать «Императивный код». Но это очень раздражает, хотя код компилируется и работает так, как я ожидал.

Итак, я должен беспокоиться об этом предупреждении? В любом случае, есть какой-то способ избавиться от этой проблемы, поскольку она заморозила Qt Designer?

8

Решение

В настоящее время сообщается об ошибке 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

Так что не беспокойтесь о предупреждении, оно будет исправлено

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]