Изменить высоту hbox RGtk2 - PullRequest
       28

Изменить высоту hbox RGtk2

0 голосов
/ 15 ноября 2018

Я пытаюсь добавить кнопки «следующий» и «предыдущий» в свой макет RGtk2.

Я поместил кнопки «следующий» и «предыдущий» в их собственный Hbox и добавил их вконец графического интерфейса.

К сожалению, Hbox, содержащий эти кнопки, расширяется и занимает 1/3 общей площади экрана, как показано ниже:

enter image description here

Я бы хотел, чтобы новый hbox занимал как можно меньше места, чтобы обеспечить максимальное пространство для второго графика.Как я могу уменьшить высоту Hbox?

Я попытался вставить hbox, используя packEnd, а не packStart, и он выглядит точно так же.

Вот код:

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 и один в некоторой древней статистике.Если вы знаете, где я могу получить больше, пожалуйста, дайте мне знать.

РЕДАКТИРОВАТЬ: Настройка расширения = ЛОЖЬ

Как предложено в комментариях, я установил расширение = ЛОЖЬ,Это просто нажимает кнопки влево.Высота коробки остается неизменной.

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 голосов
/ 19 ноября 2018

Нижнее поле с двумя кнопками было установлено по умолчанию для расширения. Чтобы установить минимальное пространство, используйте:

vbox_2$packStart(vbox_3, expand = FALSE, fill = FALSE, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...