一个易于使用、完全由Rust编写的2D的GUI库。
目前Rust并未给出官方的GUI库,但是社区已经有很多人跃跃欲试了,其中GitHub上千星的项目貌似就两个,其中就有本文的主角Conrod。不同于另一个很火的项目Azul,Conrod只一个轻量级的库,更加易于使用,学习成本较低。遗憾的是,官方Guide只更新了两小节,深入学习只能通过阅读源代码来完成。本文是Conrod官方README文件的翻译,也包括了官方指南的目录部分。等到指南的正文陆续更新之后,会尽量给大家带来更详尽的中文文档。
什么是Conrod ?
它是什么 ?
如何使用 ?
Conrod是直接的还是保留的 ?
原始组件
通用组件
一个简短的开场白
额外说明(关于截图与视频)
特性概览
可用组件——Widget
直接模式
“创建者”模式
开始 !
安装Rust和Cargo
运行Conrod示例
让我们创建一个图形界面
创建一个基本窗口(使用 piston_window)
Conrod设置
实例化组件Widget
Widget定位与布局
使用和自定义主题
什么是主题Theme
?
定制主题
连载主题
设计自定义组件 (使用 Widget trait)
Widget
trait
widget_style!
宏
builder_methods!
宏
制作一个 Button
组件
定制图像和窗口后台
后台的实现范例(使用 glium 和 glutin)
内部机制
Ui
的组件 Graph
Ui::set_widgets
——它是如何工作的 ?
频繁被问及的
这份指南仍处于编纂中。如果某个章节无法点击阅读,它可能尚未完成。
Crate | Description |
---|---|
conrod_core | The fundamentals for any conrod project. |
conrod_derive | Provides the WidgetCommon and WidgetStyle derive macros. |
conrod_winit | Simplifies using conrod_core with winit |
conrod_gfx | Simplifies using conrod_core with the gfx ecosystem |
conrod_glium | Simplifies using conrod_core with glium |
conrod_piston | Simplifies using conrod_core with piston |
conrod_vulkano | Simplifies using conrod_core with vulkano |
我们刚刚到达一个API稳定的模式 !仍将有一些大的变化,但这更可能是新特性的加入而非API的重构。
想清楚的了解我们在哪儿?看这个issues,并且,特别的,1.0.0 milestone。
想帮助我们 ?请浏览 Piston's how to contribute guide。
以下任何一个许可方式:
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
根据您的选择。
Contributions
除非你明确声明, 否则任何由你主观所做之贡献, 一如 Apache-2.0 license 之规定,应被双重许可,而无其它任何附加条款及条件。
案例资源
Google Noto (Apache2)