我想在我的Haskell程序中使用基于文本的UI。我找到了一些ncurses库的绑定(另见hscurses or ncurses, which one to use?)。 hscurses
和nanocurses
包只是C库周围的简单包装,而vty
没有很好的记录,有点难看(例如混合snake_case和CamelCase)。
Hackage上的ncurses
库看起来更漂亮,并且提供了非常适合Haskell的API。问题是它似乎没有实现一些关键功能,如调整大小或刷新窗口。
所以我的问题是:
ncurses
Haskell库扩展到至少支持窗口刷新和调整大小? (这可能应该与项目所有者协商,但我需要快速解决方案)修改
我最终使用nscurses
没有窗口(和面板)来避免刷新它们的麻烦。输出到窗口的右下角时出现问题(Python's ncurses binding报告了一个非常类似的问题)。我没有写那里解决了它:)。
答案 0 :(得分:9)
你看过vty-ui了吗?它有一个很好的用户手册,有很多例子。我相信它本质上是vty的包装。
答案 1 :(得分:3)
我成功地使用了nanoncurses和hscurses,我的hmp3应用程序有binding,这是nanocurses的基础。
无论您想要什么样的高级API。 hscurses至少有一个盒子抽象。
你可以和hscurses一起去。
答案 2 :(得分:2)
haskell中基于文本的用户界面还有另一个不错的选择;
Brick是由jtdaugherty编写的,他是开发vty-ui的人,现在已经弃用了。
API是Declarative,更适合呈现像Haskell这样的语言。 Documentation也很棒而且完整。