Есть ли особый способ импортировать файл QML из файла ресурсов QRC?Python

Программы на Python
Anonymous
Есть ли особый способ импортировать файл QML из файла ресурсов QRC?

Сообщение Anonymous »

Я работаю над небольшим приложением, и у меня возникли трудности с импортом файла QML из файла ресурсов QRC.
Мой QRC следующий:

Код: Выделить всё


qml/view/ProductionPane.qml
qml/view/SideBar.qml
qml/view/TestingView.qml
qml/view/LogView.qml
qml/view/StatsView.qml
qml/comp/MyButton.qml


assets/img/logo.png


main.qml


Файлы «физически» организованы следующим образом:

Код: Выделить всё

main.qml
main.py
rc_resources.py

qml/view/LogView.qml
qml/view/ProductionPane.qml
qml/view/SideBar.qml
qml/view/StatsView.qml
qml/view/TestingView.qml

qml/comp/MyButton.qml

assets/img/logo.png
Вот мой файл main.py:

Код: Выделить всё

import sys
from pathlib import Path

from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtCore import QUrl

import rc_resources

if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()

engine.addImportPath("qrc:/view")

engine.load(QUrl("qrc:/main.qml"))

if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec())
И, наконец, мой файл main.qml:

Код: Выделить всё

import QtQuick
import QtQuick.Window
import QtQuick.Controls

import "qrc:/qml/ProductionPane"
import "qml/view"

Window {
id: mainWindow
minimumWidth: 1024
minimumHeight: 768
width: 1920
height: 1080
title: qsTr("FooBar")

ProductionPane {
id: productionPane
anchors.fill: parent
}

SideBar {
onViewChanged: productionPane.loaderSource = view
}
}
Без импорта "qml/view" в main.qml объекты ProductionPane и SideBar не распознаются в QT создатель.
Я проверил (в main.py после создания экземпляра объекта QQmlApplicationEngine), что QFileInfo(":/qml/ProductionPane").exists() возвращает true, поэтому я знаю, что движок может найти файл QML в файле QRC, но его импорт не работает, так как при его запуске я получаю следующую ошибку:

Код: Выделить всё

qrc:/main.qml:4:1: "qrc:/qml/ProductionPane": no such directory
Я получаю эту ошибку, когда использую «qrc:/qml/ProductionPane».

Код: Выделить всё

":/qml/ProductionPane"
приводит к ошибке IDE. Файл или каталог не найден.
Есть ли у кого-нибудь предложения?
Спасибо!< /п>

Подробнее здесь: https://stackoverflow.com/questions/785 ... ource-file

Вернуться в «Python»