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 的关键,务必留意。

参考资料


<<:  <Day4>永丰Python API — Shioaji

>>:  [DAY 14] getRange 与 getDataRange

能够滑起来的UICollectionView Day9

今天恢复了点元气,终於能好好做事了。 萤幕录制 2021-09-13 下午7.44.19.mov 目...

Kotlin Android 第7天,从 0 到 ML - list 、set 和 map

前言: 今天要介绍的是list set 和 map。 大纲: List 是只可读 , 不可修改 va...

企划实现(5)

解决完前面的所有事项在开始前还有一项必备得工作,就是了解你的竞争对手 ...

伸缩自如的Flask [day 18] Docker image化--运行篇

首先,我们可以先拉一下底层的image,再把我们的app内容叠上去,从终端机(cmd)打上: doc...

Day 13 - Flex 排版

各位看官应该都知道,Flex 是 Bootstrap 预设的排版方式,威尔猪自己也超爱用 Flex...