更改RGtk2 hbox高度

时间:2018-11-15 15:38:44

标签: r user-interface gtk

我正在尝试在RGtk2布局中添加“下一个”和“上一个”按钮。

我将“下一个”和“上一个”按钮放入自己的Hbox中,并将它们添加到GUI的末尾。

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

enter image description here

我希望新的hbox占用尽可能少的空间,以便为第二张图留出最大的空间。如何缩小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-Blogger上找到了一个,在一些古老的统计文件中找到了一个。如果您知道我在哪里可以获得更多,请告诉我。

编辑:设置展开=假

如评论中所建议,我设置了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)

enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下,带有两个按钮的底部框已设置为展开。要将其设置为占用最小空间,请执行以下操作:

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