frame や button は clientSize でオブジェクトの大きさを変更しますが、テキストボックス(textEntry)は clientSize の値を変更してもオブジェクトの大きさは変化しません。
[wxhaskell-users] Size of an entry field に minsize を使う方法が紹介されていました。
module Main where import Graphics.UI.WX main :: IO () main = start gui gui = do f <- frame [ text := "Size of textEntry" ] p <- panel f [] x <- textEntry p [text := "123" , alignment := AlignRight] y <- textEntry p [text := "abcd" , alignment := AlignRight] z <- textEntry p [text := "xyz" , alignment := AlignRight] set f [ layout := margin 2 $ container p $ floatCenter $ row 5 [ minsize (sz 40 22) $ widget x, minsize (sz 80 22) $ widget y, minsize (sz 120 22) $ widget z], clientSize := sz 300 40 ]
minsize は Graphics.UI.WXCore.Layout で定義されています。
*Main> :i minsize minsize :: Size -> Layout -> Layout -- Defined in Graphics.UI.WXCore.Layout