我正在尝试在RGtk2布局中添加“下一个”和“上一个”按钮。
我将“下一个”和“上一个”按钮放入自己的Hbox中,并将它们添加到GUI的末尾。
不幸的是,包含这些按钮的Hbox展开时占据了屏幕总面积的1/3,如下所示:
我希望新的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)
答案 0 :(得分:1)
默认情况下,带有两个按钮的底部框已设置为展开。要将其设置为占用最小空间,请执行以下操作:
vbox_2$packStart(vbox_3, expand = FALSE, fill = FALSE, 0)