【问题标题】:import Qt5Compat.GraphicalEffects: QML module not found导入 Qt5Compat.GraphicalEffects:未找到 QML 模块
【发布时间】:2021-11-15 08:13:11
【问题描述】:

我在 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 和 Qt6 时,我很困惑,你使用的是 C++ 还是 python?
  • @eyllanesc 很抱歉,当我说 PySide 时,我认为人们会认为是 Python。我会将这些信息添加到我的帖子中的编辑中。我遇到的问题是在 QML 中。
  • PySide2 还是 PySide6?

标签: qt qml qt-creator pyside6


【解决方案1】:

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

如果您想将 ColorOverlay 或 DropShadow 与 一起使用,那么您应该按照 Qt5 documentation 的说明使用 import QtGraphicalEffects 1.15

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

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

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

【讨论】:

  • 我知道这一点。我有意使用 Pyside6 和 QT6,因为 PySide2 中不存在 qmlRegisterSingletonType() 方法,我需要它以便可以使用单例 qml 对象。
  • @ChrisRay 1. qmlRegisterSingletonType 无关紧要,2. 如果您使用的是 PySide6,那么您应该没有问题。如果您看到 QtCreator 警告,请忽略它,因为它只是 IDE 中的错误,无法理解 PySide 的工作原理
猜你喜欢
  • 2019-04-02
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多