PyQt5 缺少 QtQuick.Studio 模块

PyQt5 Missing QtQuick.Studio Module

问题

我使用 Qt Design Studio 创建了一些 UI 组件和屏幕(.ui.qml 格式),但无论我做什么,每当我尝试在 PyQt5 中 运行 它我一直遇到以下错误:

module "QtQuick.Studio.Components" is not installed

.ui.qml 文件有导入

import QtQuick.Studio.Components 1.0

我在网上到处查看,找不到太多关于如何解决这个问题的话题。

问题

解决此问题的最佳方法是什么?我一直在 Windows 上使用它,但我主要想在 raspberry pi 上使用代码,是否需要安装额外的依赖项?

Python代码

import os
from pathlib import Path
import sys

from PyQt5.QtCore import QCoreApplication, Qt, QUrl
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine

if __name__ == '__main__':

    CURRENT_DIRECTORY = Path(__file__).resolve().parent

    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
    engine.addImportPath(os.fspath(CURRENT_DIRECTORY.parents[0]))
    url = QUrl.fromLocalFile(os.fspath(CURRENT_DIRECTORY / "Screen01.ui.qml"))

    def handle_object_created(obj, obj_url):
        if obj is None and url == obj_url:
            print("exit")
            QCoreApplication.exit(-1)

    engine.objectCreated.connect(
        handle_object_created, Qt.ConnectionType.QueuedConnection
    )

    engine.load(url)

    if not engine.rootObjects():
        sys.exit(-1)
    sys.exit(app.exec())

Windows

我使用 print(engine.importPathList()) 查看我的导入路径。这促使我去 C:/Users/USER/AppData/Local/Programs/Python/Python38/lib/site-packages/PyQt5/Qt5/qml 并注意到 QtQuick 存在但 没有 Studio 文件夹

由于 Qt Design Studio 可以 运行 我的代码没有导入问题,我知道它会有一个 Studio 文件夹。因此,我进入 C:\Program Files\Qt\qtdesignstudio-2.2.0-community\qt5_design_studio_reduced_version\qml\QtQuick 并将 Studio 文件夹从那里复制到上面的 PyQt5 路径。

这解决了问题。

Linux

我还没试过 Linux。