テキストボックス(textEntry) の大きさを設定する。


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