我很难使用 GTK 使小部件正确间隔,我正在尝试制作一个简单的窗口,在窗口的大部分区域中显示 TextView
,并且在窗口的顶部有一个小栏顶部有几个按钮。我在想这样的事情:
------------------------------
- -
------------------------------
- -
- -
- -
- -
- -
------------------------------
但 GTK 实际上给了我更像这样的东西:
-----------------------------
- -
- -
- -
-----------------------------
- -
- -
- -
-----------------------------
我不希望各个盒子像这样分成两半。如何修复我的代码?
import Graphics.UI.Gtk
main :: IO ()
main = do
initGUI
window <- windowNew
windowBox <- vBoxNew True 2
menuBox <- hBoxNew True 2
buttonOne <- buttonNewWithLabel "Button 1"
buttonTwo <- buttonNewWithLabel "Button 2"
textBuf <- textBufferNew Nothing
textView <- textViewNewWithBuffer textBuf
textBufferSetText textBuf "some text"
boxPackStart menuBox buttonOne PackNatural 0
boxPackStart menuBox buttonTwo PackNatural 0
boxPackStart windowBox menuBox PackNatural 0
boxPackStart windowBox textView PackGrow 0
set window [containerChild := windowBox]
widgetShowAll window
mainGUI
最佳答案
正在创建“windowBox”,并将同类设置为 True。只需将其设置为 False 即可得到所需的结果:
windowBox <- vBoxNew False 2
参见:http://hackage.haskell.org/package/gtk-0.12.3/docs/Graphics-UI-Gtk-Layout-VBox.html
关于haskell - GTK 中的小部件间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23880222/