2012-02-28 57 views
1

我的谷歌福已經失敗了我。我如何刪除已添加到Panel()的小部件?例如,在下面,我希望controls-panel再次變空。我試圖建立一個動態的圖形用戶界面,我需要擺脫舊的控制,當它更新)。如何從WxHaskell面板移除小工具

+0

您是否嘗試過'visible'屬性? – bzn 2012-02-28 12:03:21

回答

1

您可以使其不可見並將其從佈局中移除。這實際上並沒有將其刪除,但確實會動態更改UI:

import Graphics.UI.WX 

buildGUI = do 
    f <- frame [ text := "Hello" ] 

    controls <- panel f [] 
    ctext <- staticText controls [ text := "Foo" ] 
    butn <- button controls [text := "Remove the Foo"]  -- I've added a button to remove Foo 
    set controls [ layout := row 0 [margin 5 (widget ctext), 
            margin 5 (widget butn) ]] 

    set f [ layout := widget controls ] 

    set butn [on command := do 
     set ctext [visible := False]       -- so ctext doesn't show 
     set controls [layout := margin 5 (widget butn) ]]  -- so ctext doesn't take up space 
    return() 

main = start buildGUI