8 个稳定版本
1.4.2 | 2021年2月26日 |
---|---|
1.4.1 | 2021年2月7日 |
1.4.0 | 2021年1月9日 |
1.0.1 | 2020年11月28日 |
0.1.0 | 2020年11月19日 |
#162 in 可视化
170KB
4K SLoC
Gazpatcho
提供基于图形节点的图形编辑器的 Rust 库。
此库可以用作绘制用户界面,允许用户创建图,这些图最终将被应用程序的后端解释和执行。
API 有四个主要部分
- 在应用程序开始时定义的
Config
结构。此结构指定所有可用的节点类型、它们的输入、输出和关联数据的小部件。 - 由 Gazpatcho 运行实例返回的
Report
结构,在每次对图进行的更改时(添加或删除节点、更改值、添加或删除补丁)都会返回。此结构描述了图及其关联数据。 - 具有两个参数的
run
函数:一个是Config
,另一个是接受当前Report
作为参数的闭包。 - 可向运行中的图实例发送以改变其状态的
Request
枚举中定义的所有操作。
文档
使用
将以下内容添加到您的 Cargo.toml
[dependencies]
gazpatcho = "1.4"
以下代码运行 Gazpatcho UI 的实例。将只有一个类型的节点可用,具有一个输入和一个输出引脚,以及用户可以将其设置为开或关的开关。当用户进行任何更改时,将向 run
回调发送一个新的报告,描述图的当前状态。在实际应用程序中,dbg!
调用将替换为更有用的内容。
use gazpatcho::config::*;
fn main() {
let config = Config {
node_templates: vec![
NodeTemplate {
label: "Example node".to_owned(),
class: "example_node".to_owned(),
pins: vec![
Pin {
label: "Input".to_owned(),
class: "in".to_owned(),
direction: Input,
},
Pin {
label: "Output".to_owned(),
class: "out".to_owned(),
direction: Output,
},
],
widgets: vec![Switch {
label: "Switch".to_owned(),
key: "switch".to_owned(),
}],
}
],
};
gazpatcho::run_with_callback("Application Name", config, |report| {
// Act upon the current report
dbg!(report);
// Respond with change requests
vec![
// Request::SetValue { ... }
]
});
}
请参阅 文档 以了解有关 Config
和 Report
结构的更多信息。如果您更喜欢通过阅读文档来调整代码,请查看并尝试包含的 示例
cargo run --example main
许可证
Gazpatcho 根据 General Public License 版本 3 的条款分发。有关详细信息,请参阅 LICENSE
更新日志
读取 CHANGELOG.md 以了解每个版本中引入的更改。
依赖关系
~23MB
~448K SLoC