之后 , 我们会使用 terminal.draw() 方法绘制界面 , 其接受一个闭包:
在这里 , 有如下流程:
- 使用Layout 按照需求给定 Constraint 切分窗体 , 获取 chunks , 每个 chunk 也可以利用 Layout 继续进行分割
- 实例化组件 , 每个组件都实现了default 方法 , 在使用时我们应该先使用 xxx::default() 获取默认对象 , 再利用默认对象更新组件样式 。 例如 Block::default().borders(Borders::ALL) 、Style::default().bg(Color::White) 等 。 这也是官方推荐做法 。
- 使用f.render_widget 渲染组件到窗体上 , 对于类似 列表 等存在状态(比如当前选中元素)的组件 , 则使用 f.render_stateful_widget 进行渲染
需要注意到是 , 在此我们只关心 UI 组件的显示方式和内容 , 有关程序逻辑的内容应放在 run_app 中处理以免打乱程序架构或影响 UI 绘制效果(你总不希望 UI 绘制到一半的时候因为进行了某些 IO 操作而卡住了对吧?)
到这里对于 tui.rs 的介绍就结束了 , 实际上使用 tui.rs 编写 UI 界面很简单 , 只要根据创作模板结合官方例子一步步构建 , 任何人都可以很快上手 。
三、更多实用工具下面将介绍介绍几款基于 tui.rs 构建的流行开源项目 , 它们无一例外是命令行工具里的“神兵利器“!
3.1 实时股票数据【软件|高手过招不用鼠标,一款超好用的跨平台命令行界面库】支持查看不同时间维度以及交易量等数据 , 股票实时数据来自雅虎 。
地址:tarkah/tickrs3.2 文件传输工具支持 SCP/SFTP/FTP/S3 功能丰富的终端文件传输工具 。
地址:veeso/termscp3.3 网络监控工具用于按进程、连接、远程 IP、主机名显示当前网络利用率 。
地址:imsnif/bandwhich限于篇幅这里就不介绍其它开源项目了 , 感兴趣的小伙伴可以去项目首页寻找 。
四、最后以上就是本文的所有内容 , 希望您从中有所收获 。
最后 , 感谢您的阅读和陪伴!!!
这里是 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目 。 您的每个点赞、留言、分享都是对我们最大的鼓励!
相关经验推荐
- 软件|还没认清现实?库克翻脸:不想交苹果税,那就别用我们的手机!
- 软件|国产手机:性价比相当高,平价手机完全可以媲美高端旗舰
- 软件|ps的第一课:保存
- 软件|百里挑一!5个小众良心软件,让你赞不绝口
- 软件|手机发热怎么办?手机玩一会就发烫怎么解决?三招帮你解决问题
- 软件|吸取“教训”!俄方传来新消息,撕开老美“遮羞布”
- 软件|新买的国产手机附带太多垃圾APP,这是我坚决支持美国苹果手机的理由
- 苹果|千万不要装这3类软件,不然手机越用越卡,网友:回去马上卸载
- 软件|俄罗斯航空发动机设计软件国产化:KOMPAS-3D系统
- 翻译软件|注册就有女朋友?这个约X软件真的离谱…
