我刚刚偶然发现了 Adobe 源库ASL。它是一组类似于 boost 的模板和功能,在 MIT 许可下。我发现库中的一些实用程序非常有用,现在我考虑使用它。
然而,图书馆似乎很简单。
- 你自己用过 ASL 吗?如果有,你的印象是什么?你推荐它吗?
- 它是否适用于一系列编译器和平台,例如 IBM C++、ICC、g++?
- 你遇到过怪癖/意想不到的事情吗?
谢谢
我自己与他们的经历有些复杂。有一次,我使用了他们的几个 Boost-wrapper 类,但是 IIRC,在下一两个版本中,我关心的位在 Boost 中可用,没有任何包装器(虽然临时,我不记得确切是什么那些碎片是……)
亚当和夏娃在玩不同的 UI 布局等方面很酷——但我从未将它们用于程序的完成版本。至少在我看来,它们主要用于相对复杂的 UI。我的印象是,如果您发现它们非常有用,您的 UI 可能需要改进。如果您需要 Adam 和 Eve 帮助了解正在发生的事情,那么您的用户很可能也无法弄清楚。
OTOH,至少在少数情况下,对话框对用户来说是清晰的,但对于开发人员来说,代码就不太清楚了。如果您在其他控件中输入值之前执行大量禁用某些控件,这样,可以更轻松地确保禁用控件,直到输入了它们所依赖的所有值。
如前所述,ASL 的重点是亚当和夏娃,其余的只是方便的工具。
Adam & Eve 合作以跨平台的方式描述具有自动布局的 UI。如果这不是您所需要的,那么您可能不应该在 ASL 上花费太多时间。
Eve 具有用于自动布局的典型垂直/水平/其他容器集合。
使用 Adam 编写脚本可以让您实现仅使用布局容器难以实现的事情(如果不是不可能的话)(例如,让不同的控件组保持相同的大小)。
没错,您在 C++ 代码中实现了一些规则。但是将与 UI 行为相关的 UI 描述规则存储在您开始存储 UI 的相同位置是有意义的。