LTUI v1.1, 一個基於lua的跨平臺字符終端UI界面庫

簡介

LTUI是一個基於lua的跨平臺字符終端UI界面庫。linux

此框架源於xmake中圖形化菜單配置的需求,相似linux kernel的menuconf去配置編譯參數,所以基於curses和lua實現了一整套跨平臺的字符終端ui庫。 而樣式風格基本上徹底參照的kconfig-frontends,固然用戶也能夠本身定製不一樣的ui風格。git

<img src="https://tboox.org/static/img/ltui/choicebox.png" width="70%" />github

安裝

$ luarocks install ltui

編譯

咱們須要先安裝跨平臺構建工具:xmakecanvas

$ xmake

運行測試

你須要先安裝lua或者luajit程序去加載運行測試程序:app

$ xmake run test dialog
$ xmake run test window
$ xmake run test desktop
$ xmake run test inputdialog
$ xmake run test mconfdialog

或者框架

$ lua tests\dialog.lua
$ lua tests\window.lua
$ lua tests\desktop.lua
$ lua tests\inputdialog.lua
$ lua tests\mconfdialog.lua

或者frontend

$ luajit tests\dialog.lua
$ luajit tests\window.lua
$ luajit tests\desktop.lua
$ luajit tests\inputdialog.lua
$ luajit tests\mconfdialog.lua

例子

應用程序

local ltui        = require("ltui")
local application = ltui.application
local event       = ltui.event
local rect        = ltui.rect
local window      = ltui.window
local demo        = application()

function demo:init()
    application.init(self, "demo")
    self:background_set("blue")
    self:insert(window:new("window.main", rect {1, 1, self:width() - 1, self:height() - 1}, "main window", true))
end

demo:run()

標籤

local lab = label:new("title", rect {0, 0, 12, 1}, "hello ltui!"):textattr_set("white")

按鈕

local btn = button:new("yes", rect {0, 1, 7, 2}, "< Yes >"):textattr_set("white")

輸入框

function demo:init()
    -- ...

    local dialog_input = inputdialog:new("dialog.input", rect {0, 0, 50, 8})
    dialog_input:text():text_set("please input text:")
    dialog_input:button_add("no", "< No >", function (v) dialog_input:quit() end)
    dialog_input:button_add("yes", "< Yes >", function (v) dialog_input:quit() end)
    self:insert(dialog_input, {centerx = true, centery = true})
end

組件

視圖 對話框 其餘
view dialog event
panel boxdialog action
label textdialog canvas
button inputdialog curses
border mconfdialog program
window choicedialog application
menubar point
menuconf rect
textedit object
textarea
statusbar
choicebox
desktop

快照

菜單配置

<img src="https://tboox.org/static/img/ltui/menuconf.png" width="70%" />工具

輸入框

<img src="https://tboox.org/static/img/ltui/inputdialog.png" width="70%" />測試

文本區域

<img src="https://tboox.org/static/img/ltui/textarea.png" width="70%" />ui

若是你想了解更多,請參考:

聯繫方式

相關文章
相關標籤/搜索