다음은 wxHaskell 노트북을 시작하는 하스켈 프로그램입니다.wxHaskell을 사용하여 노트북 변경 페이지 이벤트에서 새로 선택된 페이지 인덱스를 얻는 방법?
선택된 페이지의 색인을 가져올 수 있도록 페이지 변경 이벤트를 처리 할 수 없다는 점을 제외하면 작동합니다. 나는 대신 이전 코드를 얻습니다 (아래 코드의 "문제"참조).
는 이것을 C wxNotebook Class Reference documentation의 행동 (대해 getSelection 섹션 참조)뿐만 아니라 wxBookCtrlEvent Class Reference documetnation의 "자세한 설명"섹션에 대한 경고가있다 그러나 나는 그것을 전혀 활용하는 방법을 이해하지 않습니다.
누구든지 새 페이지 색인이 사용자가 선택한 경우 (제목을 클릭하여) 새 페이지 색인을 가져 오는 노트북의 작동 코드를 보여줄 수 있습니까?
2 차 질문 : 인수 0이 옆에있는 것을 이해하지 못합니다 - ???.
미리 감사드립니다.
module Main where
import Graphics.UI.WX
import Graphics.UI.WXCore
main :: IO()
main =
start $
do
f <- frame []
nbk <- notebook f []
pages <- sequence [ do
p <- panel nbk []
return $ tab ("Page "++show i) (container p $ label ("Page " ++ show i))
| i <- [0..3]]
set f [layout := fill $ tabs nbk pages,clientSize := sz 300 100]
let h event = case event of
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED ->
do
i <- notebookGetSelection nbk -- PROBLEM: gives the OLD index
infoDialog f "Event otification" $ "Notebook selected page: " ++ show i
propagateEvent
windowOnEvent nbk
[wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED]
0 -- ???
h