LTUI, 一个基于 lua 的跨平台字符终端 UI 界面库

本贴最后更新于 2184 天前,其中的信息可能已经水流花落

简介

LTUI 是一个基于 lua 的跨平台字符终端 UI 界面库。

项目源码:Github

此框架源于 xmake 中图形化菜单配置的需求,类似 linux kernel 的 menuconf 去配置编译参数,因此基于 curses 和 lua 实现了一整套跨平台的字符终端 ui 库。
而样式风格基本上完全参照的 kconfig-frontends,当然用户也可以自己定制不同的 ui 风格。

最近将这套 ui 框架从 xmake 里面抽离了出来独立维护,欢迎有兴趣的同学试用,顺便给个 star 哈。

对了,这个框架在 windows 下 cmd 环境也是支持的。

安装

$ luarocks install ltui  

编译

我们需要先安装跨平台构建工具:xmake

$ xmake  

运行测试

你需要先安装 lua 或者 luajit 程序去加载运行测试程序:

$ 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  

或者

$ 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

快照

菜单配置

输入框

文本区域

如果你想了解更多,请参考:

联系方式

  • LTUI
    1 引用
  • Lua
    17 引用 • 17 回帖 • 1 关注
  • UI
    13 引用 • 65 回帖
  • TBOOX
    3 引用 • 9 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...