Terminal.Gui .NET 跨平台终端 UI 工具包开源项目

我要开发同款
匿名用户2022年09月20日
95阅读
开发技术C#
所属分类GUI开发框架、程序开发
授权协议MIT

作品详情

Terminal.Gui是适用于.NET的跨平台终端UI工具包。

特性

跨平台:支持Windows、Mac和Linux。Curses、Windows控制台和.NET控制台的终端驱动程序意味着应用程序在彩色和单色终端上都能正常运行。键盘和鼠标输入:支持键盘和鼠标输入,包括拖放支持。灵活布局:支持绝对布局和创新的计算布局系统(ComputedLayout)。ComputedLayout使控件之间的相对布局变得容易,并支持动态终端UI。支持剪贴板:剪切、复制和粘贴通过Clipboard类提供的文本。任意视图:所有可见的UI元素都是View类的子类,而这些子类又可以包含任意数量的sub-views。高级应用程序功能:主循环支持处理事件、空闲处理程序、计时器和监控文件描述符。大多数类对于threading是安全的。响应式扩展(ReactiveExtensions):使用响应式扩展并受益于提高的代码可读性,以及应用MVVM模式和ReactiveUI数据绑定的能力。

示例代码

usingTerminal.Gui;usingNStack;Application.Init();vartop=Application.Top;//Createsthetop-levelwindowtoshowvarwin=newWindow("MyApp"){X=0,Y=1,//Leaveonerowforthetoplevelmenu//ByusingDim.Fill(),itwillautomaticallyresizewithoutmanualinterventionWidth=Dim.Fill(),Height=Dim.Fill()};top.Add(win);//Createsamenubar,theitem"New"hasahelpmenu.varmenu=newMenuBar(newMenuBarItem[]{newMenuBarItem("_File",newMenuItem[]{newMenuItem("_New","Createsnewfile",null),newMenuItem("_Close","",null),newMenuItem("_Quit","",()=>{if(Quit())top.Running=false;})}),newMenuBarItem("_Edit",newMenuItem[]{newMenuItem("_Copy","",null),newMenuItem("C_ut","",null),newMenuItem("_Paste","",null)})});top.Add(menu);staticboolQuit(){varn=MessageBox.Query(50,7,"QuitDemo","Areyousureyouwanttoquitthisdemo?","Yes","No");returnn==0;}varlogin=newLabel("Login:"){X=3,Y=2};varpassword=newLabel("Password:"){X=Pos.Left(login),Y=Pos.Top(login)+1};varloginText=newTextField(""){X=Pos.Right(password),Y=Pos.Top(login),Width=40};varpassText=newTextField(""){Secret=true,X=Pos.Left(loginText),Y=Pos.Top(password),Width=Dim.Width(loginText)};//Addsomecontrols,win.Add(//Theoneswithmyfavoritelayoutsystem,Computedlogin,password,loginText,passText,//Theoneslaidoutlikeanaustralopithecus,withAbsolutepositions:newCheckBox(3,6,"Rememberme"),newRadioGroup(3,8,newustring[]{"_Personal","_Company"},0),newButton(3,14,"Ok"),newButton(10,14,"Cancel"),newLabel(3,18,"PressF9orESCplus9toactivatethemenubar"));Application.Run();Application.Shutdown();

上面的示例显示了使用Terminal.Gui支持的两种布局样式添加视图:绝对布局和计算布局。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论