2012-06-22 26 views
5
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 

Xin chào. Nó là một ví dụ sửa đổi bit của gói ncurses. Vấn đề là không hiển thị bất cứ điều gì. Trong C API, như tôi nhớ, tôi phải làm mới từng cửa sổ một cách độc lập. Nhưng Haskell chỉ cung cấp render. Tôi sai ở đâu? Tôi muốn có một số widget có thể di chuyển được.Haskell ncurses

Trả lời

4

Xin lỗi vì câu hỏi ngu ngốc. Bạn chỉ cần gọi updatePanels.

+0

Chức năng đó đến từ đâu? Tôi không thấy một từ nào trong thư viện UI.NCurses và tùy chọn ': i' của GHCi cũng không biết gì về nó ... – Sventimir

+0

Tôi nghĩ OP có nghĩa là' refreshPanels' trong UI.NCurses.Panel. http://hackage.haskell.org/package/ncurses-0.1.0.2/docs/UI-NCurses-Panel.html – joom

+0

@joom nếu bạn nghĩ rằng câu trả lời là sai (vì bất kỳ lý do gì, có thể là lỗi chính tả hoặc cái gì khác) - downvote này và gửi một chính xác. – vaxquis

Các vấn đề liên quan