一个Rust的GUI库

2023-05-16

Conrod 线条

一个易于使用、完全由Rust编写的2D的GUI库。

目前Rust并未给出官方的GUI库,但是社区已经有很多人跃跃欲试了,其中GitHub上千星的项目貌似就两个,其中就有本文的主角Conrod。不同于另一个很火的项目Azul,Conrod只一个轻量级的库,更加易于使用,学习成本较低。遗憾的是,官方Guide只更新了两小节,深入学习只能通过阅读源代码来完成。本文是Conrod官方README文件的翻译,也包括了官方指南的目录部分。等到指南的正文陆续更新之后,会尽量给大家带来更详尽的中文文档。因个人水平所限,如果翻译出现问题请见谅。由于该库尚未成熟,官方的文档,乃至范例有时都是有问题、无法运行的,在实际学习中请相信自己的判断。

指南

  1. 什么是Conrod ?
    • 一个简短的开场白
    • 额外说明(关于截图与视频)
    • 特性概览
    • 可用组件——Widget
      • 原始组件
      • 通用组件
    • 直接模式
      • 它是什么 ?
      • 如何使用 ?
      • Conrod是直接的还是保留的 ?
    • “创建者”模式
  2. 开始 !
    • 安装Rust和Cargo
    • 运行Conrod示例
  3. 让我们创建一个图形界面
    • 创建一个基本窗口(使用 piston_window)
    • Conrod设置
    • 实例化组件Widget
    • Widget定位与布局
  4. 使用和自定义主题
    • 什么是主题Theme
    • 定制主题
    • 连载主题
  5. 设计自定义组件 (使用 Widget trait)
    • Widget trait
    • widget_style!
    • builder_methods!
    • 制作一个 Button 组件
  6. 定制图像和窗口后台
    • 后台的实现范例(使用 glium 和 glutin)
  7. 内部机制
    • Ui 的组件 Graph
    • Ui::set_widgets ——它是如何工作的 ?
  8. 频繁被问及的

这份指南仍处于编纂中。如果某个章节无法点击阅读,它可能尚未完成。

Crates模块

CrateBadgesDescription
conrod_core[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvRn1SoJ-1573473168410)(https://img.shields.io/crates/v/conrod_core.svg)] docs.rsThe fundamentals for any conrod project.
conrod_derive[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Vd6v5yq-1573473168414)(https://img.shields.io/crates/v/conrod_derive.svg)] docs.rsProvides the WidgetCommon and WidgetStyle derive macros.
conrod_winit[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gL9VOVWH-1573473168415)(https://img.shields.io/crates/v/conrod_winit.svg)] docs.rsSimplifies using conrod_core with winit
conrod_gfx[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZOigAk1W-1573473168418)(https://img.shields.io/crates/v/conrod_gfx.svg)] docs.rsSimplifies using conrod_core with the gfx ecosystem
conrod_glium[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YvlBHryp-1573473168421)(https://img.shields.io/crates/v/conrod_glium.svg)] docs.rsSimplifies using conrod_core with glium
conrod_piston[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dOZJEZpi-1573473168425)(https://img.shields.io/crates/v/conrod_piston.svg)] docs.rsSimplifies using conrod_core with piston
conrod_vulkano[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LpwxBmhp-1573473168428)(https://img.shields.io/crates/v/conrod_vulkano.svg)] docs.rsSimplifies 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个Rust的GUI库 的相关文章

随机推荐