
LTUI v2.2发布,基于lua的跨平台字符终端UI接口库
LTUI是一个基于左上臂的跨平台字符终端用户界面界面库。
此框架源于xmake中图形化菜单配置的需求,类似linux内核的menuconf去配置编译参数,因此基于诅咒和左上臂实现了一整套跨平台的字符终端用户界面库。而样式风格基本上完全参照的kconfig-前端,当然用户也可以自己定制不同的用户界面风格。
另外,LTUI是完全跨平台的,windows上的末端的终端也是完全支持的,在窗子上ltui会采用pdcurses来进行窗口绘制。
Github
更新内容
新版本中,我们主要增加了对鼠标事件的支持,除了诅咒/诅咒,我们还对窗子上pdcurses也做了支持,这里我们非常感谢@laelnasan贡献。
另外我们新增一个tests/events.lua测试用例,专门用来测试各种输入事件。
$ xmake运行测试事件
我们可以通过这个测试例子,获取并显示用户的所有鼠标输入事件。
我们可以在自定义的视角上,重写on_event来获取所有事件输入,包括所有的鼠标输入事件:
本地演示=应用程序()
函数demo:init()
application.init(self,’ demo ‘)
self:background_set(黑色(
目标
函数demo:on_event(e)
如果e.type==’btn_code ‘,则
print(e.btn_name,e.x,e.y)
目标
application.on_event(self,e)
目标
demo:run()
安装使用
$ luarocks安装ltui
如果要运行自带的测试,你需要先安装左上臂或者luajit程序去加载运行ltui源码仓库中的测试程序:
$ lua tests/dialog.lua
$ lua tests/window.lua
$ lua tests/desktop.lua
$ lua tests/inputdialog.lua
$ Lua tests/mconfidialog。左上臂
或者
$ luajit tests/dialog.lua
$ luajit tests/window.lua
$ luajit tests/desktop.lua
$ luajit tests/inputdialog.lua
$ Lua JIT tests/mconfidialog。左上臂
源码编译
通常只要luarocks安装好后就可以使用,如果想要本地调试,也可以源码编译后直接运行测试,首先我们需要先安装跨平台构建工具:xmake
$ xmake
xmake会自动下载lua,ncurses等相关依赖,然后我们直接通过xmake run加载相关测试程序即可:
$ xmake运行测试对话框
$ xmake运行测试窗口
$ xmake运行测试桌面
$ xmake运行测试inputdialog
$ xmake运行测试mconfidialog
应用程序
local ltui=require(‘ltui ‘)
本地应用程序=ltui。应用
local event=ltui.event
local rect=ltui.rect
本地窗口=ltui.window
本地演示=应用程序()
函数demo:init()
application.init(self,’ demo ‘)
self:background_set(蓝色(
self : insert(窗口: new(‘窗口。main ‘,rect {1,1,self:width() – 1,self : height()-1 },’ main window ‘,true))
目标
demo:run()
标签
local lab=labe : new(‘ title ‘,rect {0,0,12,1},’ hello ltui!’):textattr_set(‘white ‘)
按钮
local btn=button:new(‘yes ‘,rect {0,1,7,2},’ Yes ‘): testattr _ set(‘ white ‘)
输入框
函数demo:init()
-.
local dialog _ input=inputdialog : new(‘ dialog。输入’,rect {0,0,50,8})
dialog _ input : text(): text _ set(‘请输入文本: ‘)
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 })
目标
组件
菜单配置
输入框
文本区域
Windows
Termux