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。
问题
我使用 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。