Haskell ncurses

标签 haskell terminal ncurses

main :: IO()
main = runCurses $ do 
  setEcho False
  w <- defaultWindow
  canvas <- newWindow 19 19 0 0
  panel <- newPanel canvas
  updateWindow canvas $ do 
    drawString "Hello world!"
  render
  waitFor w (\ev -> ev == EventCharacter 'q' || ev == EventCharacter 'Q')

waitFor :: Window -> (Event -> Bool) -> Curses ()
waitFor w p = loop where
    loop = do
        ev <- getEvent w Nothing
        case ev of
            Nothing -> loop
            Just ev' -> unless (p ev') loop

你好。这是 ncurses 包的一些修改示例。 问题是不显示任何内容。我记得在 C API 中,我必须独立刷新每个窗口。但 Haskell 只提供渲染。我哪里错了?我想要一些可移动的小部件。

最佳答案

您只需调用refreshPanels

关于Haskell ncurses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152612/

相关文章:

haskell - 使用 Haskell 打印菱形图案

function - 编程 * 仅使用 succ 和 pred

haskell - 如何从 Haskell 程序中访问 "+RTS -s"或其他内存信息?

C传递终端命令并打印答案

php - ncurses_def_shell_mode() 和 ncurses_def_prog_mode() 究竟做了什么?

c ncurses,窗口边框问题

haskell - 在 Haskell 脚本中完成的任何事情都可以在 GHCi session 中重现吗?

tomcat - 在 Mac OS X Lion 上安装 Tomcat 7.0.22

linux - 如何使用 bash 脚本中给定的字符串制作自己的计算器

rust - 使用草书 SelectView 时出现奇怪的字符