rust语言Orbtk GUI库-1.Orbtk简介

rust语言支持的GUI框架简述

rust目前已经有非常多的GUI方案,大多数是绑定的其他语言编写的库,如gtk绑定,qt绑定等等。

如果想看有哪些GUI库可以参考如下网址:

  • https://github.com/rust-unofficial/awesome-rust
  • https://crates.io/crates/gui

个人比较推荐2个:

  1. rust qt绑定:qt功能强大,跨平台,足以满足各种需求
  2. orbtk:rust语言编写的操作系统redox项目的GUI方案,完全使用rust实现,跨平台

qt功能强大,稳定,如果功能比较复杂,可以考虑qt绑定。唯一的问题是编译rust qt绑定ui程序需要按照qt,msvc等众多软件。

如果是学习,编写小工具,或者并不需要很快的完成稳定版本软件,可以选择orbtk。但是由于orbtk还在开发过程中,api可能会变更,功能也还不太完善,所以商用或者比较复杂的软件请慎重。

orbtk GUI框架简介

orbtk gui框架是redox(rust语言开源操作系统)项目组开发的,redox系统的gui用的就是orbtk。orbtk是跨平台的gui,不仅支持Redox OS,还支持Linux, macOS, Windows系统。

orbtk GUI库的特点:

  • 类似Flutter, React, Redux的API
  • 支持Linux,Maxos,Windows
  • CSS 主题,可以使用css修改控件样式
  • 弹性的事件系统
  • 控件状态管理
  • 使用DECS库(Entity Component System library DCES)操作控件(widget)和属性(properties)
  • 更新而不是重建(rebuild)控件树

orbtk基于SDL2,所以依赖SDL2库(redox系统上不依赖SDL2)。除了SDL2库,orbtk本身及其依赖的所有库都完全使用rust语言编写,速度非常快。

orbtk的开发受到了Flutter、React、Yew等的启发,所以API与这些库有些类似。目前(2019)orbtk还有很多功能不完善,正在开发中,根据官网,orbtk未来计划如下:

  • 更多的默认控件(widgets)
  • 更多的示例
  • 动画
  • 运行时修改views / widgets / screens
  • application分割到不同的模块
  • 升级样式系统(Theme)
  • 支持Android, iOS and WebAssembly
  • 支持Vulkan / OpenGL
  • 编写orbtk书籍及样式指南

目前,不支持运行时修改widgets,这是硬伤啊,所以只能用在比较简单的GUI上,希望能尽快增加。

文章分类:rust语言Orbtk GUI库入门

本系列文章将持续更新,由于api一直变化汇总,文章也一直在变动,更新中

2109年api有大的变化,和2018完全不同。

2018老版本orbtk入门文章

你可能感兴趣的:(rust语言Orbtk,GUI库)