首页 > 解决方案 > 导入 Qt5Compat.GraphicalEffects:未找到 QML 模块

问题描述

我在 Arch Linux 上,我正在尝试在我的项目中使用 PySide6 和 QT6,因为我需要能够使用单例 qml 对象,而 PySide2 似乎不支持单例 qml 对象的注册。我的项目使用 ColorOverlays 和 DropShadows,所以我需要 GraphicalEffects 支持。但是,根据文档页面,Qt6 不支持这些,需要兼容模块 Qt5Compat.GraphicalEffects 才能支持。

我正在尝试通过以下导入语句将 Qt5Compat.GraphicalEffects 导入我的 QML 代码:

import Qt5Compat.GraphicalEffects

但是,当我在 QT Creator 中将其添加到项目的 QML 中时,我收到错误消息:“ QML module not found.

为了解决这个问题,我尝试了以下一些方法:

如何通过导入 Qt5Compat.GraphicalEffects 解决此问题?

编辑:

我将 Python 和 PySide6 用于我的后端代码,但我正在用 QML 编写前端,这就是我遇到问题的地方。

标签: qtqmlqt-creatorpyside6

解决方案


您必须记住 PySide2 是 Qt5 的绑定,而 PySide6 是 Qt6 的绑定。

如果您想在 pyside2 中使用 ColorOverlay 或 DropShadow,您应该遵循Qt5 文档中说明您应该使用import QtGraphicalEffects 1.15.

相反,如果您想在中使用它,它已将这些组件移至Qt5Compat模块,因此您应该使用:import Qt5Compat.GraphicalEffects.

因此导入的方式将取决于您使用的是 PySide2 (Qt5) 还是 PySide6 (Qt6)。

注意:QtCreator 没有太多功能,所以很多时候它会抛出误报,因为它无法理解 PySide。不幸的是,他们并没有给予它“太多的感情”,因此它没有被优化以与 python 一起获得这种类型的警告。所以只是避免警告。


推荐阅读