我想在D中编写一个带有文本UI的控制台应用程序。我查看了curses,但它似乎只适用于unix。是否有任何交叉模式替代品?
答案 0 :(得分:3)
我的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();
等来移动和绘制。
在terminal.d中查找version(Demo)
以查找处理各种输入事件(包括鼠标事件)的main
。
虽然terminal.d主要提供较低级别的功能(它的主要高级功能是terminal.getline
,非常适合基于行的应用而不是TUI),它应该提供编写一个小文本小部件库所需的所有基础
我觉得有人可能曾经做过一次,但我不记得在哪里。
terminal.d适用于Windows和Posix系统,适用于最常见的终端,如xterm。 ncurses更全面,并且可能在更加模糊的目标上有更少的错误,但是作为单个文件的terminal.d更容易构建。
答案 1 :(得分:1)
很久以前就是如此。但是,已知ncurses
在Windows上运行良好。在Windows上构建它的最简单方法是在MSYS2 shell中。实际上没有其他跨平台替代Curses(找出他们为什么命名项目" curses"你会发现为什么没有好的选择)。