我使用gWidgets和RGtk2创建了一个GUI。 GUI的一部分是带有一组gcombobox的glayout。这些框最初为空,一旦导入文件就会填充。
在Mac上,Gtk +在X11中运行,组合框的宽度会调整大小以适应组合框中最长的文本字符串。在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)
祝福
托马斯
答案 0 :(得分:2)
我无法在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)