D 的 TUI(文本用户界面)?
TUI (text user interface) for D?
我想在 D 中编写一个带有文本 UI 的控制台应用程序。我查看了 curses,但它似乎只适用于 unix。是否有任何跨平台的替代方案?
很久以前就是这样。但是,众所周知,ncurses
在 Windows 上也能很好地工作。在 Windows 上构建它的最简单方法是在 MSYS2 shell 内。确实没有其他跨平台替代品可以替代 Curses(找出为什么他们将项目命名为 "curses",您就会发现为什么没有好的替代品)。
我的 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 作为单个文件,更容易构建。
我想在 D 中编写一个带有文本 UI 的控制台应用程序。我查看了 curses,但它似乎只适用于 unix。是否有任何跨平台的替代方案?
很久以前就是这样。但是,众所周知,ncurses
在 Windows 上也能很好地工作。在 Windows 上构建它的最简单方法是在 MSYS2 shell 内。确实没有其他跨平台替代品可以替代 Curses(找出为什么他们将项目命名为 "curses",您就会发现为什么没有好的替代品)。
我的 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 作为单个文件,更容易构建。