4 个版本 (重大更改)

0.6.0 2023 年 9 月 21 日
0.5.0 2023 年 9 月 20 日
0.4.0 2023 年 9 月 20 日
0.3.0 2022 年 10 月 20 日

#833网页编程

Download history 18/week @ 2024-04-14 20/week @ 2024-04-21 10/week @ 2024-04-28 30/week @ 2024-05-05 24/week @ 2024-05-12 27/week @ 2024-05-19 17/week @ 2024-05-26 29/week @ 2024-06-02 30/week @ 2024-06-09 36/week @ 2024-06-16 25/week @ 2024-06-23 30/week @ 2024-06-30 10/week @ 2024-07-07 25/week @ 2024-07-14 11/week @ 2024-07-21 104/week @ 2024-07-28

每月 150 次下载
7 个 Crates 中使用 (6 直接使用)

MIT/Apache

8.5MB
17K SLoC

makepad-widgets

概述

这是 Makepad 框架的顶级 crate,Makepad 框架是一个为 Rust 定制的下一代 UI 框架。使用 Makepad 框架构建的应用程序可以在本地和网页上运行,完全由 GPU 渲染,并支持一个名为实时设计的创新特性。

实时设计意味着 Makepad 框架为其他应用程序,例如 IDE,提供了基础设施,以便在您的应用程序运行时挂钩到您的应用程序并更改其设计。为此,Makepad 框架应用程序的样式使用 DSL 描述。在这个 DSL 中编写的代码通过使用 proc 宏紧密集成到主要的 Rust 代码中。

实时设计感知的 IDE 可以检测 DSL 代码而非 Rust 代码中的更改,因此它可以将更改发送到应用程序的 DSL 代码,而不是触发完整的重新编译,允许应用程序自行更新。(makepad-studio crate 包含了一个最终将能够实现此功能的 IDE 的原型,但它仍在积极开发中。)

此 crate 包含了几乎所有应用程序都需要的基本小部件集合。在撰写本文时,以下小部件得到支持

  • 窗口
  • 下拉菜单
  • 边栏
  • 拆分器
  • 标签栏
  • 框架
  • 滚动条
  • 文件树
  • 标签
  • 按钮
  • 复选框
  • 单选按钮
  • 颜色选择器

除了这些小部件之外,这个包还包含两个更低级包的重新导出,分别是makepad-draw-2d,其中包含所有与绘图应用程序相关的代码,以及makepad-platform,其中包含所有特定于平台的代码。最后,它包含一系列基础字体。

简而言之,在Makepad框架中构建应用程序时,大多数情况下您只需要这个包。

注意事项

尽管Makepad框架已经足够完整,您可以用它来编写自己的应用程序,但它仍在积极开发中。目前,我们只支持Mac和Web(尽管我们打算很快添加对Windows和Linux的支持)。在此阶段,我们不对API的稳定性做出保证。如果您决定使用Makepad框架开发自己的应用程序,请记住这一点。最后,我们在字体渲染、国际化等领域仍缺乏显著的功能。

示例

简单示例

一个非常简单的示例,包含一个带有按钮和计数器的窗口,可以在makepad-example-simple包中找到。它注释相当详细,因此这应该是使用Makepad框架进行探索的一个很好的起点。

Ironfish(电子合成器)

更令人印象深刻的示例可以在makepad-example-ironfish包中找到。Ironfish是一个完全用Makepad框架编写的电子合成器。如果您想了解您可以用Makepad框架构建的应用程序类型,这就是您想要的示例。

联系

如果您有任何问题/建议,请随时通过我们的discord频道联系我们:[https://discord.com/invite/urEMqtMcSd=](https://discord.com/invite/urEMqtMcSd=)

依赖项

约6-14MB
约145K SLoC