精華|行業資訊|編輯:顏馨|2023-05-09 15:46:24.670|閱讀 128 次
概述:本文介紹關于Qt的快速效果,歡迎查閱!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Qt 是目前最先進、最完整的跨平臺C++開發工具。它不僅完全實現了一次編寫,所有平臺無差別運行,更提供了幾乎所有開發過程中需要用到的工具。如今,Qt已被運用于超過70個行業、數千家企業,支持數百萬設備及應用。
The Qt Company是Digia Plc旗下的全資子公司。負責所有Qt活動,包括產品開發,商業和開源授權模式以及在開放管理模式下的Qt工程。其許可、支持和服務能力能夠和開發者緊密合作以確保他們的Qt項目準時部署,不超預算并擁有競爭優勢。
隨著Qt 6.5 LTS的推出,現在是寫更多關于Qt 6和特效的好時機,這篇博文對最新的Qt Quick(2D)特效產品做了一些詳細介紹。
隨著Qt 6.5的推出,Qt Quick特效的故事已經相當穩固。Qt 5是一個很好的特效平臺,而Qt 6則更勝一籌。這里有一張小抄的圖片,你可以打印出來掛在墻上:
讓我們從面包和黃油開始,簡單的效果。這是當您想要向UI元素添加投影,模糊面板的背景,使用閾值遮罩元素或只是稍微調整亮度時。在這些常見的效果案例中,你的新朋友是Qt快速多效果元素。MultiEffect支持7種效果(模糊,陰影,蒙版,著色,亮度,對比度和飽和度),當然還有所有這些效果的組合。根據啟用的效果,將使用最佳著色器。由于它使用Qt 6 RHI,著色器自然包含OpenGL,Vulkan,Metal和Direct3D版本,緊湊地打包到qsb文件中。
下面是一個使用Qt Quick MultiEffect的組件的簡單代碼示例:
因此,我們首先導入包含MultiEffect的QtQuick.Effects模塊。然后創建一個“HELLO”文本元素,并為其應用帶有陰影和一些著色的多重效果。輸出可以在右側看到:白色文本變為紅色,并帶有模糊的陰影。簡單而強大!
Qt 6.5包括兩個MultiEffect示例。因此,如果您想查看更多內容,只需在Qt Creator示例視圖中鍵入“MultiEffect”:
有時,實現設計師的愿景需要更專注的方法。事先創建自定義效果通常比在運行時組合著色器/圖像/圖層的性能更高。專門為此任務創建的Qt工具稱為Qt快速效果制作工具。您可以從簡介博客文章或示例用法文章中閱讀有關 QQEM 功能的更多信息。
QQEM已經在許多項目中使用,當它作為Qt 6.5安裝的一部分易于訪問時,現在將有更多的項目加入。這
如果您有興趣為您的項目測試 QQEM,只需按照這些安裝說明進行操作即可。您還可以打開新的 Wiggly 示例,其中包含使用 QQEM 制作的效果。如果要修改效果,請使用QQEM打開WigglyEffect.qep項目文件并狂野。
在這種情況下,您可以使用Qt Quick Effect Maker中提供的MultiEffect節點。此節點具有與Qt Quick MultiEffect相同的效果API,并且渲染輸出也相同(因為著色器代碼匹配)。如果您不相信我,請觀察當我切換測試平臺示例以使用自定義多重效果而不是標準多重效果時會發生什么:
效果輸出保持不變,只是顯示有關 MultiEffect 可以自動執行的填充的警告。另請注意,對于“多重效果”節點,在導出效果之前,應在 QQEM 屬性視圖中選擇啟用哪些效果,以獲得最佳著色器。Qt Quick MultiEffect包含多個著色器,因此它可以在運行時選擇最佳著色器。
使用多效果節點,可以根據自己的喜好自由修改著色器。此外,可以使用任何其他節點擴展它。您可以首先使用簡單的Qt快速多重效果,然后順利切換到自定義效果。
上述方法是向Qt快速UI添加效果的推薦首選選項。顯然,還有其他選擇。
Qt 圖形效果在 Qt 5 兼容性模塊中仍然可用。我們不建議將它們與新代碼一起使用,但是如果您的應用程序使用這些代碼并且它們適合您,請隨時繼續使用Qt 6。
同樣,如果你想直接使用 ShaderEffect 元素,這也是一個有效的選項。從QQEM導出的效果也使用它,所以區別在于使用QQEM,由于自動烘焙,實時預覽,集成屬性,著色器檢查等,您通常具有更好的生產力。但是,如果您已經擁有完美的著色器效果,只需將其作為qsb傳遞給ShaderEffect即可。
Qt 6一直有一個非常強大的架構,用于使用Qt渲染硬件接口(RHI)和Qt著色器工具來實現著色器效果。在Qt 6.5中,我們現在提供了API和工具,使使用這種功能變得更加容易。常見的Qt Quick Effects故事(從Qt 6.5開始)可以簡化為:
對于簡單效果,請使用Qt快速多重效果。對于自定義效果,請使用Qt快速效果制作工具。
歡迎下載|體驗更多Qt產品
獲取更多信息請咨詢 ;Qt技術交流群:166830288
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn