元素C++GUI库

2020-07-06 10:23:15

Elements是一个轻量级、细粒度、与分辨率无关的模块化GUI库。Elements在设计时牢记以下要求:

它应该可以在任何应用程序中使用,并且应该能够很好地与其他GUI库和框架配合使用。

第二个要求的推论是,它还可以用于开发插件。它不应该拥有事件循环,并且应该能够与插件主机(如VST和AU)中的组件共存。

它应该有一个使用现代C++的声明性API。声明性C++代码告诉您什么,而不是如何(命令性)。GUI应该用C++代码声明。

元素,是极其轻量级的…。而且是模块化的。您可以使用强调重用的说明性接口来组合非常细粒度的、轻量级的“元素”,以形成深层的元素层次结构。

请注意,元素仍在不断变化,因为我们离版本1.0越来越近。API和代码仍在不断变化,因此,元素还没有做好生产准备。但这不应阻止您现在使用元素!它已经是一种非常可用的形式,当报告和修复错误时,更多的人使用它最终会使它变得更健壮。API和可用性很重要,我非常欢迎您的建议和贡献。嘿,这是一个开源项目!如果你喜欢元素背后的设计、概念和想法,我非常欢迎合作。

2020年6月22日:取消对Boost的依赖。这需要使用额外的参数对应用程序进行一些API更改。请参见示例。

2020年5月26日:介绍艺术家2D CanvasLibrary。Artist库将最终取代Element的二维画布实现。

乔尔在80年代进入电子和编程领域,因为他的初恋音乐几乎所有的东西都在电子化和数字化,从那时起,他就制造自己的吉他、效果盒和合成器。他喜欢弹失真的摇滚吉他,在家里的录音棚里创作和制作自己的音乐。

乔尔·德·古兹曼(Joel De Guzman)是CycfiResearch的首席架构师和工程师,也是CiereConsulting的顾问。他是一名专门研究高级C++的软件工程师,也是开放源码的倡导者。他撰写了许多非常成功的开源项目,如Boost.spirity、Boost.Phoenix和Boost.Fusion。这些库都是Boost Library的一部分,Boost Library是一个备受尊敬、经过同行评审、开放源码的协作开发项目。