wxHaskell和Reactive-Banana staticText在文本更改时不更新大小

时间:2012-11-18 00:55:42

标签: user-interface haskell frp wxhaskell reactive-banana

我正在尝试构建一个简单的用户界面作为学习wxHaskell和Reactive Banana的练习,但是我试图解决一个看似简单的问题。具体来说,我想在标签的文本更新时调整窗口大小以适应标签,以便它始终适合文本。我尝试使用windowReLayoutMinimal完成此操作,但这意外地导致窗口在文本溢出时无法调整大小,并且在手动调整大小时(即拉伸它)时窗口在其原始大小和新大小之间选通把手放在角落里)。据我所知,StaticText项目的大小在文本更改时无法更新。有没有办法强制项目重新计算其最小尺寸? 我的代码如下所示:

{-# LANGUAGE ScopedTypeVariables #-}
import Graphics.UI.WX hiding (Event)
import Reactive.Banana
import Reactive.Banana.WX

main = start $ do
    mainWindow      <- frame [text := "Test"]
    inputText   <- textEntry mainWindow []
    outputText  <- staticText mainWindow []
    set mainWindow  [layout :=
                      margin 10 $
                      grid 10 10 [
                        [widget inputText, fill $ valignCenter $ widget outputText]
                      ]
                    ]
    let
        networkDescription :: forall t . Frameworks t => Moment t ()
        networkDescription = do
            inputTextEvStream <- eventText inputText
            let 
                currentInputText = stepper "" inputTextEvStream
            sink outputText [text :== currentInputText]
            reactimate $ windowReLayoutMinimal mainWindow <$ inputTextEvStream
    network <- compile networkDescription
    actuate network

0 个答案:

没有答案