MujicaUI

Terminal & Code · #326

ProcessList 浅色主题渲染快照
浅色 · 渲染快照
ProcessList 深色主题渲染快照
深色 · 渲染快照

326 ProcessList · 进程列表

用途

以表格列出进程,可按名称、PID、CPU、内存排序;结束进程前必须确认,确认后通过结果交给调用方执行。

最小示例

procs := []code.Process{{PID: 7, Name: "archivist", CPU: 42, Memory: 50 << 20}, {PID: 9, Name: "herald", CPU: 3, Memory: 8 << 20}}
var state code.ProcessListState
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	r := code.ProcessList(c, procs, &state, code.ProcessListOptions{})
	r.Element.Height(240)
	if r.End != nil {
		fmt.Println("kill", r.End.PID)
	}
}
ui.Render(view, 400, 300, 1)

参数

func ProcessList(c *ui.Context, procs []Process, s *ProcessListState, opts ProcessListOptions) ProcessListResult。排序只在切片或排序方式变化时进行;刷新数据请传入新切片。

字段类型默认值含义
Process.PID, Nameint, string—进程号与名称;PID 是行的稳定键。
Process.CPUfloat640占用百分比。
Process.Memoryuint640常驻内存字节数,显示为 KB/MB/GB。
ProcessListState.Sortui.SortOrderCPU 降序列为 name、pid、cpu、memory,其他值 panic。
Disabledboolfalse不能排序与结束进程。

状态

选中行(Selection 背景与菱形)、排序列箭头、确认对话框(默认聚焦“取消”)、无进程、禁用。

事件

End:用户确认要结束的进程,没有则为 nil。

键盘操作

  • Tab 到达表格;↑/↓、Home/End 选择;Delete 结束所选进程(先确认)。
  • 点击列头排序,再点反向;每行结束按钮可用 Tab 到达。

限制

  • 组件不发送信号,只回报确认结果。