在Qt5中,使用DropShadow非常容易。
但是,在Qt6中,已删除了QtGraphicalEffects模块。
在Qt6中是否有任何技巧、解决方法或新的方式来创建某个组件周围的投影效果?
在Qt5中,使用DropShadow非常容易。
但是,在Qt6中,已删除了QtGraphicalEffects模块。
在Qt6中是否有任何技巧、解决方法或新的方式来创建某个组件周围的投影效果?
Qt Graphical Effects
已经被彻底删除:[1]。然而,Qt Graphical Effects
已与新的QRhi
(Qt渲染硬件接口)兼容,在Qt6中使用[2]。请注意,这并不意味着它将在后期包括在Qt 6中。[3]。DropShadow
相对容易。Qt5 Compatibility API
包含进来(Qt 6.1的最终版本计划于2021年4月27日发布)。[4]
您可以手动将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/
DropShadow
组件,请添加:import QtGraphicalEffects 1.0
innershadow
有何建议? - eddymimport QtQuick
import QtQuick.Effects
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello Shadow")
Rectangle {
id: sourceItem
width: 100
height: 100
radius: 10
y: 40
x: 40
color: "red"
}
MultiEffect {
source: sourceItem
anchors.fill: sourceItem
shadowBlur: 1.0
shadowEnabled: true
shadowColor: "black"
shadowVerticalOffset: 15
shadowHorizontalOffset: 11
}