更改 RGtk2 水平框高度

Change RGtk2 hbox height

我正在尝试将 "next" 和 "previous" 按钮添加到我的 RGtk2 布局中。

我已将 "next" 和 "prev" 按钮放入它们自己的 Hbox 中,并将它们添加到 GUI 的末尾。

不幸的是,包含这些按钮的 Hbox 扩展到占据屏幕总面积的 1/3,如下所示:

我希望新的 hbox 占用的空间尽可能小 space,以便为第二张图留出最大的空间。如何缩小Hbox的高度?

我试过使用 packEnd 而不是 packStart 插入 hbox,它看起来完全一样。

代码如下:

library(RGtk2)
library(tidyr)
library(ggplot2)
library(cairoDevice)


# data generation ---------------------------------------------------------

s1 = mvrnorm(1000, c(0, 0), matrix(c(1, 0.8, 0.8, 1),2,2))

s2 = mvrnorm(1000, c(0,0), matrix( c(1,-0.8,-0.8,1),2,2))

# code --------------------------------------------------------------------


window <- gtkWindow(show = FALSE)


frame_main <- gtkFrameNew("test")
window$add(frame_main)

graphics_old <- gtkDrawingArea()
graphics_new <- gtkDrawingArea()


button_next = gtkButtonNewWithLabel("Next")
button_prev = gtkButtonNewWithLabel("Previous")
button_test = gtkButtonNewWithLabel("test")
button_reset = gtkButtonNewWithLabel("Reset")

textbox_example<- gtkEntryNew() 
textbox_example$setWidthChars(100)

label = gtkLabelNewWithMnemonic("Input your text here") 




vbox_1 = gtkVBoxNew()
vbox_1$setBorderWidth(10)
vbox_1$packStart(graphics_old, expand = TRUE, fill = TRUE, padding = 0)
vbox_1$packStart(label,expand = FALSE, fill = FALSE, padding = 0)
vbox_1$packStart(textbox_example,expand = FALSE, fill = FALSE, padding = 0)
vbox_1$packStart(button_test,expand = FALSE, fill = FALSE, padding = 0)
frame_main$add(vbox_1)


vbox_2 = gtkVBoxNew()
vbox_2$packStart(graphics_new, expand = TRUE, fill = TRUE, padding = 0)
vbox_2$packStart(button_reset,expand = FALSE, fill = FALSE, padding = 0)
vbox_1$packStart(vbox_2)



vbox_3 = gtkHBoxNew()
vbox_3$packStart(button_next, expand = TRUE,fill = FALSE, padding = 0)
vbox_3$packStart(button_prev, expand = TRUE,fill = FALSE, padding = 0)
vbox_2$packStart(vbox_3)

window$setDefaultSize(1000,1000)
window$showAll()

asCairoDevice(graphics_old)
plot(s1)

asCairoDevice(graphics_new)
plot(s2)

另外,网上好像很少有RGtk的教程。我在 R-Bloggers 上找到了一个,在一些古老的统计论文中找到了一个。如果你知道我在哪里可以得到更多,请告诉我。

编辑:设置 expand = FALSE

按照评论中的建议,我设置了 expand = FALSE。这只是将按钮推向左侧。盒子的高度保持不变。

vbox_3 = gtkHBoxNew()
vbox_3$packStart(button_next, expand = FALSE,fill = FALSE, padding = 0)
vbox_3$packStart(button_prev, expand = FALSE,fill = FALSE, padding = 0)
vbox_2$packStart(vbox_3)

带有两个按钮的底部框默认设置为展开。要将其设置为最少 space 使用:

vbox_2$packStart(vbox_3, expand = FALSE, fill = FALSE, 0)