簡體   English   中英

如何用Qt6在QML中創建DropShadow效果?

[英]How to create DropShadow effect in QML with Qt6?

Qt5中,使用DropShadow很容易。
但在Qt6中,模塊QtGraphicalEffects 被刪除了。

Qt6中是否有任何技巧、解決方法或新方法可以在某些組件周圍創建投影?

正如您自己注意到的那樣, Qt Graphical Effects已被刪除(肯定)

以下模塊已刪除,不打算進一步開發。

  • Qt 圖形效果
  • [...]

但是, Qt Graphical Effects與 Qt6 使用的新QRhi (Qt 渲染硬件接口)兼容。 [1]

請注意,這並不意味着它將在稍后階段包含在 Qt 6 中。 [2]

盡管如此,我希望從開發人員或 git 的 Qt 5.15 分支中使用DropShadow會相對容易。

請注意,它將作為Qt5 Compatibility API在 Qt6.1 中。 (Qt 6.1 的最終發布原計划於 27.04.2021 [3]

Qt6 投影

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 代碼中使用以下組件:

  • 亮度對比度
  • 着色
  • 顏色疊加
  • 錐形漸變
  • 去飽和
  • 置換
  • 投影
  • 快速模糊
  • 快速發光
  • 伽馬調整
  • 輝光
  • 色相飽和度
  • 電平調整
  • 線性漸變
  • 不透明遮罩
  • 徑向漸變
  • 矩形光暈
  • 閾值掩碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM