之后 , 我们会使用 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 上有趣、入门级的开源项目 。 您的每个点赞、留言、分享都是对我们最大的鼓励!
- 软件|支持Mac电脑的五款设计软件
- 软件|小米有品又出男性爆品,累计好评50万条,100天续航缓解无电尴尬!
- 开源软件|说一下,我买iPhone SE3的5个原因
- 软件|工作的好帮手:8款设计软件介绍
- 大屏|五款值得推荐的数据可视化大屏软件
- 315公平守正 安心消费pc6、桔梗、腾牛、ZOL软件下载平台被曝光
- 软件|吸取“教训”!俄方传来新消息,撕开老美“遮羞布”
- 软件推荐|无限制,云储存软件推荐
- 软件|半夜偷看“不良网站”,删掉记录就安全了吗?内行:自己骗自己
- 软件|要想能力起飞,好的软件必备