qt - 导入 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.
”
为了解决这个问题,我尝试了以下一些方法:
- 使用网站上的安装程序安装了 QT。
- 通过 pacman 安装 Qt6/5。
- 从 AUR 安装 qt6-5compat 包。
- 从 AUR 安装 qt6/5-base。
- 谷歌搜索问题。
如何通过导入 Qt5Compat.GraphicalEffects 解决此问题?
编辑:
我将 Python 和 PySide6 用于我的后端代码,但我正在用 QML 编写前端,这就是我遇到问题的地方。
解决方案
您必须记住 PySide2 是 Qt5 的绑定,而 PySide6 是 Qt6 的绑定。
如果您想在 pyside2 中使用 ColorOverlay 或 DropShadow,那么您应该遵循Qt5 文档中说明您应该使用import QtGraphicalEffects 1.15
.
相反,如果您想在pyside6中使用它,它已将这些组件移至Qt5Compat模块,因此您应该使用:import Qt5Compat.GraphicalEffects
.
因此导入的方式将取决于您使用的是 PySide2 (Qt5) 还是 PySide6 (Qt6)。
注意:QtCreator 没有太多功能,所以很多时候它会抛出误报,因为它无法理解 PySide。不幸的是,他们并没有给予它“太多的感情”,因此它没有被优化以与 python 一起获得这种类型的警告。所以只是避免警告。
推荐阅读
- excel - 从公式运行的宏不会复制/粘贴,但通过 vbe 运行它可以正常工作
- spring-mvc - Kotlin 如何使用 assertj 创建自定义断言
- javascript - 在 basic-ftp 上使用上传,其他可能的用途
- reactjs - React 应用程序中的 TypeScript 而不是 ES6?
- php - 如何从下拉列表中删除重复值
- mongodb - 对 insert_one 使用写关注
- python - 具有匹配标题的两个数据框列之间的相关性
- python - 如何使用 python selenium 选择带有文本的空白窗口元素
- python - 无法打印元组的长度.. 为什么
- bash - 在这段代码中,为什么我们必须在 find ... -exec 之后插入 bash ?; {} 和 ${} 引用有什么区别?