另一个 GUI 工具包
Kas GUI 系统力求兼具速度和 Alan Kay 的口号:
简单的事情应该简单,复杂的事情应该可行。 来自 examples/hello.rs 的摘录: let hello_ui = column![ "你好,世界!", Button::label("&关闭").with(|cx, _| cx.exit()) ]; 来自 examples/counter.rs 的摘录: #[derive(Clone, Debug)] struct Increment(i32);
fn counter() -> impl Widget { let tree = column![ format_label!("{}").align(AlignHints::CENTER), row![ Button::label_msg("−", Increment(-1)), Button::label_msg("+", Increment(1)), ] .map_any(), ];
tree.with_state(0)
.on_message(|_, count, Increment(add)| *count += add)
在更复杂的情况下,自定义小组件可能相当复杂;请查看 Kas 小组件库(包括源代码)以获取示例。
完全支持键盘操作
支持具有较高代码级别的状态化用户定义的小组件 - 支持最佳的用户交互 - 支持在任何缩放因子下自动布局和像素级精确的缩放 (即,边距和元素大小应一致,光栅图标应具有像素级精确的渲染;布局允许随着内容的缩放而变化) - 支持极其快速的单体 Rust 二进制文件
暂无开放 Issues,或尚未同步最近议题。