模块 "material" 未安装
Module "material" is not installed
我正在使用 Qt Creator 在 Windows 7 VM 上编写 运行 代码,当 运行 我的代码时出现 module "material" is not installed
错误。它使用 Pyside6 用 Python 3.8 初始化。我的 Qt Creator 是版本 4.15.0
这是 QML 代码:
import QtQuick 2.0
import QtQuick.Controls 2.12
Item {
width: 640
height: 480
visible: true
Rectangle {
id: rectangle
x: 232
y: 220
width: 200
height: 200
color: "#c96565"
}
}
这是 Python 脚本:它是示例默认脚本之一的修改版本。
import os
import sys
import urllib.request
import json
from pathlib import Path
import PySide6.QtQml
from PySide6.QtQuick import QQuickView
from PySide6.QtCore import QStringListModel, Qt, QUrl
from PySide6.QtGui import QGuiApplication
if __name__ == '__main__':
#Set up the application window
app = QGuiApplication(sys.argv)
view = QQuickView()
view.setResizeMode(QQuickView.SizeRootObjectToView)
#Load the QML file
qml_file = Path(__file__).parent / "main.qml"
view.setSource(QUrl.fromLocalFile(os.fspath(qml_file.resolve())))
#Show the window
if view.status() == QQuickView.Error:
sys.exit(-1)
view.show()
#execute and cleanup
app.exec()
del view
虽然我还没有在 QMl 中使用 Qt Quick Control 元素。即使我确实有一个快速控制元素,也会发生同样的事情。但是,如果我 remove/comment 输出下面 Qt Quick Controls 的导入语句,应用程序运行正常。我试过更改快速控件旁边的版本号也没有成功。
UPDATE:似乎无法找到模块是路径问题,所以我通过将此行添加到顶部来强行将路径强行放入 qml 文件中: import "./Controls.2" as QtQuickControls
我将嵌套在 PySide6 文件夹中的 Controls.2 文件夹复制粘贴到该项目的根目录中。我现在得到的错误是
The plugin <filepath to qtquickcontrols2plugin.dll> uses incompatible Qt library. <5.15.0> [release] import "./Controls.2" as QtQuickControls
我想通了:我不需要暴力破解路径;在你的 python 项目的 .pydevproject 文件中,确保你添加了 PySide6 的完整路径,因为出于某种原因系统无法在没有路径的情况下找到它。
像这样:
<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH">
<path>\path\to\your\python\venv\or\folder\Lib\site-packages\PySide6</path>
</pydev_pathproperty>
如果这不起作用,请尝试直接调用 Material
模块:
import QtQuick.Controls.Material 2.12
我正在使用 Qt Creator 在 Windows 7 VM 上编写 运行 代码,当 运行 我的代码时出现 module "material" is not installed
错误。它使用 Pyside6 用 Python 3.8 初始化。我的 Qt Creator 是版本 4.15.0
这是 QML 代码:
import QtQuick 2.0
import QtQuick.Controls 2.12
Item {
width: 640
height: 480
visible: true
Rectangle {
id: rectangle
x: 232
y: 220
width: 200
height: 200
color: "#c96565"
}
}
这是 Python 脚本:它是示例默认脚本之一的修改版本。
import os
import sys
import urllib.request
import json
from pathlib import Path
import PySide6.QtQml
from PySide6.QtQuick import QQuickView
from PySide6.QtCore import QStringListModel, Qt, QUrl
from PySide6.QtGui import QGuiApplication
if __name__ == '__main__':
#Set up the application window
app = QGuiApplication(sys.argv)
view = QQuickView()
view.setResizeMode(QQuickView.SizeRootObjectToView)
#Load the QML file
qml_file = Path(__file__).parent / "main.qml"
view.setSource(QUrl.fromLocalFile(os.fspath(qml_file.resolve())))
#Show the window
if view.status() == QQuickView.Error:
sys.exit(-1)
view.show()
#execute and cleanup
app.exec()
del view
虽然我还没有在 QMl 中使用 Qt Quick Control 元素。即使我确实有一个快速控制元素,也会发生同样的事情。但是,如果我 remove/comment 输出下面 Qt Quick Controls 的导入语句,应用程序运行正常。我试过更改快速控件旁边的版本号也没有成功。
UPDATE:似乎无法找到模块是路径问题,所以我通过将此行添加到顶部来强行将路径强行放入 qml 文件中: import "./Controls.2" as QtQuickControls
我将嵌套在 PySide6 文件夹中的 Controls.2 文件夹复制粘贴到该项目的根目录中。我现在得到的错误是
The plugin <filepath to qtquickcontrols2plugin.dll> uses incompatible Qt library. <5.15.0> [release] import "./Controls.2" as QtQuickControls
我想通了:我不需要暴力破解路径;在你的 python 项目的 .pydevproject 文件中,确保你添加了 PySide6 的完整路径,因为出于某种原因系统无法在没有路径的情况下找到它。 像这样:
<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH">
<path>\path\to\your\python\venv\or\folder\Lib\site-packages\PySide6</path>
</pydev_pathproperty>
如果这不起作用,请尝试直接调用 Material
模块:
import QtQuick.Controls.Material 2.12