D的TUI(文本用户界面)?

时间:2015-03-15 14:36:05

标签: d tui

我想在D中编写一个带有文本UI的控制台应用程序。我查看了curses,但它似乎只适用于unix。是否有任何交叉模式替代品?

2 个答案:

答案 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"你会发现为什么没有好的选择)。