haskell - GTK 中的小部件间距

标签 haskell gtk

我很难使用 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/

相关文章:

haskell - 函数组合的点表示法

gtk - 销毁 GtkBuilder 会销毁所有创建的小部件吗?

自定义 GtkComboBoxText 的完成

c - GTK3.0 GUI 在使用 "g_spawn_async_with_pipes()"时卡住

BFS 实现中的 Haskell 空间泄漏

haskell - 如何在独立的Getter中使用(^?ix 0)?

haskell - 如何在使用惰性序列时观察进度?

haskell - F#交互命令对应ghci :t :i

python `YYYY-MM-DD`

python - 带有 PyGTK 崩溃的多线程 Gstreamer (xcb_xlib_threads_sequence_lost)