@Gytim

Qml import разные каталоги не находит?

Хочу часть qml файлов вынести за проект.
есть:
rootdirectory / myproject / rs /main.qml
rootdirectory / myproject / myproject.pro
rootdirectory / qml / item.qml

как импортировать в main.qml -> item.qml ?

Делал:
import "../../qml" (в проекте свойства и др. находит но ругается)
import "../../qml/"
import "../../qml/*"
import "qrc:/qml" (прописал file alias = "qml/item.qml")
error: no such directory

import "/home/PC/rootdirectory/qml"
import "/home/PC/rootdirectory/qml/"
import "/home/PC/rootdirectory/qml/*"
error: has no qmldir and no namespace

Перенести в папку с проектом не предлагать
есть 2 проги и 70% общего кода
  • Вопрос задан
  • 716 просмотров
Решения вопроса 1
@Gytim Автор вопроса
В общем это я немного был не внимательный 1 из вариантов работает(у меня еще не находились картинки и ругалось):
в qrc
"<resource="qml">
"<file alias="qml/main.qml">rc/main.qml</file>
"<file alias="qml/item.qml">../../qml/item.qml</file>


в QML main.qml
import "qrc:/qml"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@4rtzel
По-моему qml не очень умеет работать с относительными путями, которые выходят за root проекта. Попробуйте что-то вроде этого:

Структура:
├── qml
│   └── MyItem.qml
└── project
    ├── main.cpp
    ├── main.qml
    ├── qml.qrc
    ├── project.pro

main.qml:
import "qml" as Common // Просто "qml"; без "../"

Window {
    visible: true
    width: 640
    height: 480
    Common.MyItem {
    }
}

Не забудьте добавить файлы в qml.qrc.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы