I would like to write a console app with text UI in D. I looked at curses, but it seems that it works only on unix. Are there any cross-patform alternatives?
2 回答
我的 terminal.d 可以用作 TUI 库的基础。
https://github.com/adamdruppe/arsd/blob/master/terminal.d
它没有必需的依赖项,因此您只需下载该文件并开始使用dmd yourfile.d terminal.d
. 这是一个获取输入的示例程序:http: //arsdnet.net/dcode/book/chapter_12/07/input.d
您还可以使用terminal.moveTo(x, y); terminal.color(Color.green, Color.black); terminal.writef("something"); terminal.flush();
等来移动和绘制。
version(Demo)
在 terminal.d 本身中查找main
处理各种输入事件(包括鼠标事件)的 a。
虽然 terminal.d 主要提供较低级别的功能(它的主要高级功能是terminal.getline
,非常适合基于行的应用程序,但不适用于 TUI),它应该提供编写一个小的文本小部件库所需的所有基础。
我想有人可能做过一次,但我不记得在哪里。
terminal.d 适用于 Windows 和 Posix 系统,适用于 xterm 等最常见的终端。ncurses 更全面,在更模糊的目标上可能有更少的错误,但作为单个文件的 terminal.d 更容易构建。
很久以前就是这样。但是,ncurses
众所周知,它也可以在 Windows 上很好地工作。在 Windows 上构建它的最简单方法是在MSYS2 shell 中。Curses 确实没有其他跨平台替代品(找出他们为什么将项目命名为“curses”,您会发现为什么没有好的替代品)。