Skip to Content
面板Plugin Widget

Plugin Widget

Plugin 宣告它要哪些控制項,排版由主程式決定。這是寫 Plugin 介面的建議方式。

Plugin Widget 面板,顯示按鈕、核取方塊、下拉、輸入框、數值清單、單選、進度條等控制項
widget_demo 展示全部的 widget 型別

為什麼不是 Plugin 自己畫

因為 Plugin 不知道、也不該知道自己會被放在多大的面板裡、終端機版還是視窗版、 字有多寬。它只宣告「我要一個按鈕、一個核取方塊、一個 32 列的數值清單」, 主程式把它擺進去——同一份宣告在兩個版本都能用,而且面板縮小時會依序隱藏 標了「可省略」的控制項,而不是被裁掉。

視窗版的 widget 全部自繪(沒有任何系統原生控件),外觀與行為和終端機版對齊。

操作

Tab 在控制項之間移動子焦點,Space/Enter 觸發,Esc 把輸入權交還指令列。

掛上一顆 Plugin

plugin switch widget_demo @p0

@p<N> 不可省略——不指定面板的話它會掛到別的面板上,而被你看著的那一個 會顯示「no plugin mounted」。

Plugin 失敗時

Plugin 載入失敗(init 或 probe 失敗)或執行中崩潰時,面板不會消失:

  • 標題尾端出現 [FAILED](視窗版為紅色),例如 p1 PLUGIN · it6616 [FAILED];面板太窄時,先捨去 Plugin 名稱、再捨去 PLUGIN,[FAILED] 最後才會被擠掉。
  • 已宣告的控制項變灰,不再回應。原因寫在 Log 裡,plugin 指令也會列出。
  • 視窗版:標題列右端多一顆 ↻,點它就對這個面板執行 plugin restart,不會跳確認框。面板窄到標題放不下 PLUGIN [FAILED](Canvas 面板的 PLUGIN CANVAS 名稱較長,會先縮成 [FAILED])時,這顆鈕會整個隱藏。 也可以用選單 Plugin > Restart plugin on panel N(作用於目前有焦點的面板)。
  • 終端機版:標題只有 [FAILED] 標記,沒有按鈕;打 plugin restart @p<N>。

重啟會卸載後把同一顆 Plugin 掛回同一個面板,再走一次 init、probe;Plugin 正常運作時也可以用同一個指令(或選單)手動重新載入。

終端機版

終端機版的 Plugin Widget 面板

相關

Plugin 清單、Plugin 開發、PDK。