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
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
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
@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