2

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?

4

2 回答 2

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();等来移动和绘制。

version(Demo)在 terminal.d 本身中查找main处理各种输入事件(包括鼠标事件)的 a。

虽然 terminal.d 主要提供较低级别的功能(它的主要高级功能是terminal.getline,非常适合基于行的应用程序,但不适用于 TUI),它应该提供编写一个小的文本小部件库所需的所有基础。

我想有人可能做过一次,但我不记得在哪里。

terminal.d 适用于 Windows 和 Posix 系统,适用于 xterm 等最常见的终端。ncurses 更全面,在更模糊的目标上可能有更少的错误,但作为单个文件的 terminal.d 更容易构建。

于 2015-03-16T15:33:19.087 回答
1

很久以前就是这样。但是,ncurses众所周知,它也可以在 Windows 上很好地工作。在 Windows 上构建它的最简单方法是在MSYS2 shell 中。Curses 确实没有其他跨平台替代品(找出他们为什么将项目命名为“curses”,您会发现为什么没有好的替代品)。

于 2015-03-16T12:06:46.557 回答