iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
Software Development

JUCE 入門 @ 跨平台應用程式開發使用 C++系列 第 19

Day 18:分離控制項的外觀與行為

JUCE 因開發 DAW(Digital Audio Workstation)而生,十多年來持續發展,已經是 Digital Audio 軟體開發的重要工具。

音樂類型的軟體有別於傳統應用程式,其使用者介面客制化程度高,因應產品的品牌識別,獨具風格的 GUI 設計令人賞心悅目。

JUCE 將控制項「外觀」與其「行為」分離。以按鈕為例,Button 類別裡定義了 LookAndFeelMethods 介面,定義了一群純虛擬介面。JUCE 裡的控制項多有 LookAndFeelMethods 介面。

LookAndFeel 類別繼承了控制項的 LookAndFeelMethods 介面,等於統整了定義各控制項「外觀」的介面。JUCE 提供了多個 LookAndFeel 實作品,如 LookAndFeel_V1、LookAndFeel_V2、LookAndFeel_V3,各自用不同風格「描繪」控制項外觀。

以 Button 為例,上面描述的繼承體系如下:

JUCE 內建的 DemoRunner 裡有各個 LookAndFeel 實作品的示範,下面是 LookAndFeel_V1:

新版 JUCE 有時會釋出新的 LookAndFeel 實作,例如 JUCE v5 提供了多個版本的 LookAndFeel_V4:

註:LookAndFeel_V4 提供了不同的 Color Scheme 以切換不同的配色。

JUCE 內建的 LookAndFeel 實作可以當做基礎,繼承後利用相關虛擬函數改變控制項外觀。有時只是改變 GUI 字型,只要修改其中一個函數即能達到目的。

LookAndFeel 架構是 JUCE GUI 的關鍵,務必留意。

參考資料


上一篇
Day 17:Layout Using Grid
下一篇
Day 19:非 GUI 類工具之 juce::String
系列文
JUCE 入門 @ 跨平台應用程式開發使用 C++29

尚未有邦友留言

立即登入留言