如何使用 Qt6 在 QML 中创建 DropShadow 效果?
How to create DropShadow effect in QML with Qt6?
在 Qt5 中,使用 DropShadow.
很容易
但是在 Qt6 模块 QtGraphicalEffects is removed.
在 Qt6 中是否有任何技巧、解决方法或新方法可以在某些组件周围创建阴影?
正如您自己注意到的,Qt Graphical Effects
是 removed (definitely):
The following modules are removed and not planned to be developed
further.
- Qt Graphical Effects
- [...]
但是,Qt Graphical Effects
与 Qt6 使用的新 QRhi
(Qt 渲染硬件接口)兼容。 [1]
请注意,这并不意味着它会在稍后阶段包含在 Qt 6 中。 [2]
尽管如此,我希望从 git.
的 dev 或 Qt 5.15 分支使用 DropShadow
会相对容易
请注意,它将作为 Qt5 Compatibility API
in Qt6.1. (Final release of Qt 6.1 is originally planned for 27.04.2021 [3])
import Qt5Compat.GraphicalEffects
DropShadow {}
您可以手动将 QtGraphicalEffects
模块添加到 Qt6,然后在您的代码中使用 DropShadow
。
通常,要在 Qt 6 中非正式使用 QtGraphicalEffects
,请执行以下操作:
$ git clone git://code.qt.io/qt/qtgraphicaleffects.git
$ cd qtgraphicaleffects/
$ git checkout 59ab3e11433a5157aac0f3af7c0d7fe70a373373 & cd ..
$ ~/Qt/<VERSION>/gcc_64/bin/qmake qtgraphicaleffects
$ make
$ find qtgraphicaleffects/src/effects/ -maxdepth 1 -name \*.qml -exec cp {} qml/QtGraphicalEffects \;
$ cp -r qtgraphicaleffects/src/effects/private/ qml/QtGraphicalEffects
$ cp -r qml/QtGraphicalEffects ~/Qt/<VERSION>/gcc_64/qml/
这将获得尚未从存储库中完全删除的模块源代码。然后将其构建并与所需文件一起复制到Qt安装目录。
所以要使用 DropShadow
组件,添加
import QtGraphicalEffects 1.0
您还可以在 QML 代码中使用以下组件:
- 亮度对比度
- 着色
- 颜色叠加
- 锥形渐变
- 去饱和
- 置换
- 投影
- 快速模糊
- 快速发光
- 伽马调整
- 发光
- 色调饱和度
- 级别调整
- 线性渐变
- 不透明遮罩
- 径向渐变
- 矩形发光
- 阈值掩码
在 Qt5 中,使用 DropShadow.
很容易
但是在 Qt6 模块 QtGraphicalEffects is removed.
在 Qt6 中是否有任何技巧、解决方法或新方法可以在某些组件周围创建阴影?
正如您自己注意到的,Qt Graphical Effects
是 removed (definitely):
The following modules are removed and not planned to be developed further.
- Qt Graphical Effects
- [...]
但是,Qt Graphical Effects
与 Qt6 使用的新 QRhi
(Qt 渲染硬件接口)兼容。 [1]
请注意,这并不意味着它会在稍后阶段包含在 Qt 6 中。 [2]
尽管如此,我希望从 git.
的 dev 或 Qt 5.15 分支使用DropShadow
会相对容易
请注意,它将作为 Qt5 Compatibility API
in Qt6.1. (Final release of Qt 6.1 is originally planned for 27.04.2021 [3])
import Qt5Compat.GraphicalEffects
DropShadow {}
您可以手动将 QtGraphicalEffects
模块添加到 Qt6,然后在您的代码中使用 DropShadow
。
通常,要在 Qt 6 中非正式使用 QtGraphicalEffects
,请执行以下操作:
$ git clone git://code.qt.io/qt/qtgraphicaleffects.git
$ cd qtgraphicaleffects/
$ git checkout 59ab3e11433a5157aac0f3af7c0d7fe70a373373 & cd ..
$ ~/Qt/<VERSION>/gcc_64/bin/qmake qtgraphicaleffects
$ make
$ find qtgraphicaleffects/src/effects/ -maxdepth 1 -name \*.qml -exec cp {} qml/QtGraphicalEffects \;
$ cp -r qtgraphicaleffects/src/effects/private/ qml/QtGraphicalEffects
$ cp -r qml/QtGraphicalEffects ~/Qt/<VERSION>/gcc_64/qml/
这将获得尚未从存储库中完全删除的模块源代码。然后将其构建并与所需文件一起复制到Qt安装目录。
所以要使用 DropShadow
组件,添加
import QtGraphicalEffects 1.0
您还可以在 QML 代码中使用以下组件:
- 亮度对比度
- 着色
- 颜色叠加
- 锥形渐变
- 去饱和
- 置换
- 投影
- 快速模糊
- 快速发光
- 伽马调整
- 发光
- 色调饱和度
- 级别调整
- 线性渐变
- 不透明遮罩
- 径向渐变
- 矩形发光
- 阈值掩码