【发布时间】:2015-01-25 08:59:19
【问题描述】:
下面是一个启动 wxHaskell 笔记本的 Haskell 程序。
它可以工作,除了我无法处理页面更改事件以获取 新 选定页面的索引。我得到了前一个(请参阅下面代码中的注释“问题”)。
C wxNotebook Class Reference documentation(参见 getSelection 部分)以及wxBookCtrlEvent Class Reference documetnation 的“详细说明”部分中对此行为有警告,但我完全不明白如何使用它。
谁能告诉我一些笔记本的工作代码,当用户选择新页面(通过点击其标题)时,可以获取新页面索引?
第二个问题:我不明白参数 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
【问题讨论】:
标签: haskell wxhaskell wxnotebook