Haskell ncurses

KAc*_*ion 5 terminal haskell 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
Run Code Online (Sandbox Code Playgroud)

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

KAc*_*ion 4

您只需拨打电话即可refreshPanels