在wxHaskell,控制已附着可讀取或改變性質。節[Prop(Grid())]可以理解爲「任何Grid類型的屬性列表」。
這是wxHaskell處理wxWidgets庫的方法,它是構建在面向對象的基礎上的。網格()實際上是指「在繼承層次從電網派生什麼」 - 即電網,ScrolledWindow,面板,窗口,EvtHandler,wxObject(您可以通過,如果你在http://wxhaskell.sourceforge.net/doc/Graphics-UI-WXCore-WxcClassTypes.html#204開始在遵循本)
當你看控件的文檔(例如ListCtrl)會發現它被報告爲具有一組屬性和實例。基本上,您可以使用那些適用於Grid的層次結構。例如,電網從ScrolledWindow派生,所以你可以使用:
- 屬性scrollRate有色類如的
- 屬性BGCOLOR,顏色
- 等
使用這些屬性,如下所示,例如由線
g <- gridCtrl parent [color := red, bgcolor := green, scrollRate := 41]
...
set g [color := blue]
線,代碼讀取類似如下:
- 使用所提供的性能(道具)
- 和initialWindow(其將在窗口填id和初始rect和標記),調用floowing包裝爲了功能:
- gridCreate創建一個新的網格實例
- 使用新的網格實例,設置網格內有0行,0列並沒有什麼選擇。
- 應用由調用者提供的屬性(道具)到電網(例如放數據中,設置樣式等)
這使得代碼最難讀取的部分是feed2功能,並且代碼以'$'風格寫入以向feed2提供正確的參數。上面我稍稍揮手的解釋應該是足夠了,但如果你想了解詳細信息,瞭解到feed2只是由反轉功能應用
feed2 x y f = f x y
然後用括號替換「$」的應用程序。這看起來不可愛,但更易於閱讀。
gridCtrl parent props =
feed2 props 0
(initialWindow (\id rect ->
\props flags ->
do
g <- gridCreate parent id rect flags
gridCreateGrid g 0 0 0
set g props
return g)))
請閱讀[Markdown formatting reference](http://stackoverflow.com/editing-help)並重新格式化您的代碼,以使其更具可讀性。 – 2010-05-11 23:14:33