1个不稳定版本
0.1.0 | 2023年2月7日 |
---|
#2 in #druid
62 每月下载次数
用于 saqif
770KB
7.5K SLoC
druid-widget-nursery
此存储库包含(或,在撰写本文时,将包含)与druid
一起工作的控件。存储库遵循乐观合并政策,其理念是降低合并PR的门槛,这有望带来良好的贡献者体验,进而鼓励更多人成为整个druid
系列crate的常规合作者。
我们不会坚持在更新到druid的新版本时所有控件都必须构建,因此您会发现CI允许失败。修复这些构建失败将是第一次贡献的好机会,人们总是愿意在这里或在zulip上帮助解决这个问题。
总之,此存储库PR的默认假设是合并,但此政策包括可能更改或逆转先前PR的未来PR。有关更多信息,我建议您阅读此处和上面链接的乐观合并文章,它提供了管理开源项目的一种有趣方法,无论此处是否使用。
请注意,对于CI,我们使用cargo clippy --all-targets --all-features
使用此库
将以下内容添加到您的Cargo.toml
中。您需要从此存储库的Cargo.toml中获取当前druid rev
。
druid-widget-nursery = { git = "https://github.com/linebender/druid-widget-nursery" }
[patch.'https://github.com/linebender/druid'.druid]
git = "https://github.com/linebender/druid"
rev = "<copy the current druid rev from this repository's Cargo.toml>"
您Cargo.toml
中的rev
应与此存储库的[dependencies.druid]
下的rev
匹配。这确保了您的应用程序依赖于与该库相同的druid版本 - 否则,您可能会遇到安装多个版本的druid
的问题。有关上述覆盖语法的更多信息,请参阅Cargo的patch
文档。
一旦安装了druid-widget-nursery
,您就可以像往常一样使用use druid_widget_nursery::YourWidgetNameHere
导入各种控件。有关使用各种控件的特定示例,请参阅示例目录。
控件
如果您添加了一个新的控件,请在此处添加其名称和简要说明。
-
树形控件
-
导航控件,可以显示不同的子控件/视图。
-
下拉菜单:使用最近添加的子窗口的基本下拉菜单控件
-
下拉菜单选择:从下拉列表中选择一个项目的基本控件
-
列表选择:从列表中选择一个项目的基本控件
-
动画器:运行多个动画的辅助工具,具有不同的曲线/时间/依赖关系
-
动画辅助:简单的过渡辅助工具。
-
PartialWidget:如果其数据存在,则显示控件的控件
-
MultiRadio:通过内部控件表示多个值的单选按钮
-
MultiCheckbox:通过内部控件表示多个值的复选框
-
开关器:当关联的Prism返回
Some()
时,显示第一个控件 -
LazySwitcher:类似于开关器,但内部控件是按需懒加载的。
-
TooltipController:在鼠标悬停时弹出文本提示的便捷方式
-
OnMonitor:防止子窗口超出监视器边界的辅助控件
-
分割:多个可调整大小的分割
-
ListFilter:过滤其内部控件列表的控件
-
TitleBar:作为窗口标题栏处理的控件。(仅在Windows上)
-
高级版本的滑块,也允许键盘输入。
-
material_icons::Icon
:绘制材料图标的辅助工具。
进度条改进
- 基于druid中的现有进度条。
- 使样式选项更具可配置性,使用主题值作为默认值,在控件中提供选项以覆盖。
- 移除了对控件宽度的约束,控件现在将扩展以适应其容器。
- 未来想法:添加可选配置,用于覆盖进度条上的文本。
- 未来想法:绘制整个圆角矩形进度条,然后将其截断,因此渐变的大小不是根据当前进度,而是始终根据完整的进度条。至少作为一个选项。
- 待办事项:宽度和高度是否应完全可配置,都调整到填充其容器?
- 待办事项:更广泛地审查主题值,担心它们可能没有得到一致的使用。
控件请求
如果您需要某些控件,并且认为它可能对其他人有用,请随意提交PR,将其添加到此列表中。
- 一个非常好的、通用的用于布置项目集合的控件。
- 我们可以使用不同的方法(来自HTML世界的
flexbox
或grid
)。 - 这最终可能是多个控件,用于不同的用例。
- 我们可以使用不同的方法(来自HTML世界的
- 一个类似于
druid::widget::Scroll
的控件,但也支持缩放其内容。 - 颜色选择器
控件存储库链接
也许您已经制作了自己的控件集合,它们不足以进入druid
本身,但仍将有助于其他druid
用户。提交PR以将它们添加到此处!
druid-graphs
:一个用于绘制图形作为控件的alpha质量库,灵感来自matplotlib
。目前仅支持几种图形类型,欢迎合作!与druid-lens-compose
配合良好。druid_table
: 一个表格/数据网格小部件(目前也包含一些插值/可视化功能)。使用druid_bindings
druid-enums
: 一个用于查看枚举的小部件,根据其数据的变体显示不同的部件。
依赖项
~9–22MB
~318K SLoC