欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

文章圖片

鼠標(biāo)|高手過招不用鼠標(biāo),一款超好用的跨平臺(tái)命令行界面庫(kù)

命令行工具是程序員的秘密武器 , 它們安裝簡(jiǎn)單、啟動(dòng)速度快、界面簡(jiǎn)潔 , 一條指令或者快捷鍵即可完成操作 , 用完即走深藏不露 。
而最趁手的莫過于自己親手打造的!本期 《講解開源項(xiàng)目》 就介紹一個(gè)讓你快速擁有完美命令行界面的跨平臺(tái)庫(kù)——tui.rs
你一定有過這樣的糾結(jié):我的程序需要一個(gè)界面 , 但使用諸如 Qt 等框架又比較繁瑣 。 現(xiàn)在 tui.rs 來了 , 它是 Rust 下的命令行 UI 庫(kù) , 不僅上手方便內(nèi)置多種組件 , 而且效果炫酷支持跨平臺(tái)使用 。
輕松實(shí)現(xiàn)一份代碼可以無縫運(yùn)行在 Linux/Windows/Mac 之上!
接下來你不僅可以快速上手 tui.rs , 還會(huì)收獲多款基于它構(gòu)建的神兵利器!
一、安裝tui.rs 采用 Rust 語言編寫 , 和所有其他 Rust 依賴的安裝方法一樣 , 直接在 cargo.toml 中添加依賴即可:
[dependencies
tui = \"0.17\"
crossterm = \"0.22\"
如果需要官方示例 , 則直接 clone 官方倉(cāng)庫(kù):

二、快速入門2.1 一覽芳容我們主要使用 tui.rs 提供的以下模塊進(jìn)行 UI 編寫(所有 UI 元素都實(shí)現(xiàn)了 Widget 或 StatefuWidget Trait):

  • bakend 用于生成管理命令行的后端
  • layout 用于管理 UI 組件的布局
  • style 用于為 UI 添加樣式
  • symbols 描述繪制散點(diǎn)圖時(shí)所用點(diǎn)的樣式
  • text 用于描述帶樣式的文本
  • widgets 包含預(yù)定義的 UI 組件
如下代碼就可以實(shí)現(xiàn)一個(gè)很簡(jiǎn)單的 tui 界面:
這些代碼可能看起來不少 , 但大部分都是固定的模板 , 不需要我們每次的重新構(gòu)思 。 下面 , 就讓我們來詳細(xì)了解其中的細(xì)節(jié) 。
2.2 創(chuàng)作模板官方通過 example 給出了使用 tui.rs 進(jìn)行設(shè)計(jì)的模板 , 我希望各位讀者在使用時(shí)也能遵守這套模板以保證程序的可讀性 。
一個(gè)使用 tui.rs 程序的一生大概是這樣的:
其模塊可以大致分為:
  • app.rs 實(shí)現(xiàn) App 結(jié)構(gòu)體 , 用于處理 UI 邏輯 , 保存 UI 狀態(tài)
  • ui.rs 實(shí)現(xiàn) UI 渲染功能
但對(duì)于小型程序來講 , 也可以都寫在 main.rs 之中 。
首先來看開始和結(jié)束部分關(guān)于 Terminal 的操作 , 每次運(yùn)行都會(huì)保存原始 Terminal 界面內(nèi)容并在一個(gè)新的窗體上運(yùn)行 , 在結(jié)束后又會(huì)恢復(fù)到原來的 Terminal 窗體中 , 有效地防止了搞亂原來的窗口內(nèi)容 。 這部分代碼模板官方已經(jīng)給出 , 基本無需修改:

接下來是處理 UI 邏輯的 run_app 函數(shù) , 我們?cè)诖颂幚碇T如 用戶按鍵、UI 狀態(tài)更改等邏輯

對(duì)于功能簡(jiǎn)單的界面來講 , 這個(gè)函數(shù)作用不大 。 但如果我們的程序需要更新一些組件狀態(tài)(比如列表選中項(xiàng)、用戶輸入、外界數(shù)據(jù)交互等)則應(yīng)在此統(tǒng)一處理 。

相關(guān)經(jīng)驗(yàn)推薦