gWidgets:调整组合框,以适应内容(gWidgets: Resize combobox to

2019-09-24 03:44发布

我已创建使用gWidgets和RGtk2的GUI。 的GUI的一部分是与一组gcomboboxes的glayout。 这些盒子最初是空的,一旦一个文件导入被填充。

在Mac上使用GTK + X11通过运行组合框的宽度被调整大小以适合在组合框中最长textstring。 在Windows上不会发生和组合框获取滚动条,以适应长文本字符串(见图片)。

我试图打开知名度和关闭,迫使重绘但尺寸保持固定。

反正是有强制在Windows机器上的调整大小?

为使容器保持相关部件的代码如下:

optionsBox <- ggroup(cont=controlGroup)
addSpring(optionsBox)
options <- glayout(cont=optionsBox, spacing=5, fill='y')
optList <- list()
options[1, 1, anchor=c(1,0)] <- 'Category:'
options[1, 2, anchor=c(-1,0)] <- optList$category <- gcombobox(category, cont=options)
options[2, 1, anchor=c(1,0)] <- 'Order:'
options[2, 2, anchor=c(-1,0)] <- optList$order <- gcombobox(order, cont=options)
options[2, 3, anchor=c(1,0)] <- optList$numeric <- gcheckbox('numeric', checked=TRUE)
options[3, 1, anchor=c(1,0)] <- 'Plottype:'
options[3, 2, anchor=c(-1,0)] <- optList$plottype <- gcombobox(c('Bar', 'Line'), cont=options)
addSpring(optionsBox)

最好的祝愿

托马斯

Answer 1:

我不能在Windows上轻松地测试这一点,但几件事情应该助阵。 首先,确保对父容器glayout对象没有限制的初始大小。 (在下面的例子中尝试设置do_expand=FALSE ,看看会发生什么。)除非你把与小部件的尺寸size<-方法(不是最好的使用,但有时你所能做的)初始大小将来自满足你的部件的尺寸要求。

library(gWidgets)
options(guiToolkit="RGtk2")
w <- gwindow()
g <- ggroup(cont=w)
do_expand=TRUE
options <- glayout(cont=g, spacing=5, expand=do_expand)
items <- ""

options[1,1] = "vanilla"
options[1,2] <- gcombobox(items, cont=options)

options[2,1] = "expand"
options[2,2, expand=TRUE] <- gcombobox(items, cont=options)

options[3,1] = "expand, fill"
options[3,2, expand=TRUE, fill="y"] <- gcombobox(items, cont=options)

options[4,1] = "size"
options[4,2] <- (cb <- gcombobox(items, cont=options))
size(cb) <- c(250, -1)

## populate comboboxes 
items <- state.name 
sapply(options[,2], function(i) i[] <- items)


文章来源: gWidgets: Resize combobox to fit content
标签: r gtk gwidgets