gpt4 book ai didi

r - gWidgets 调整大小/最大化模态窗口

转载 作者:行者123 更新时间:2023-12-04 09:18:25 25 4
gpt4 key购买 nike

我的脚本需要等待用户输入才能继续处理。在使用 R gWidgets 包实现 GUI 后,我发现 gbasicdialog 小部件比 gwindow 工作得更好,因为它是模态的。

gwindow 小部件具有有用的最小化和最大化按钮。 gbasicdialog 小部件没有这些按钮,我经常在 GUI 中显示大型 gtables,这意味着用户必须反复单击并拖动以展开窗 Eloquent 能看到足够的表格。

到目前为止,我调整 gtable 小部件的大小如下:

library(gWidget)
library(gWidgetsRGtk2)
library(RGtk2)
options(guiToolkit = "RGtk2")

mywindow <- gbasicdialog("Display table", do.buttons = FALSE)
# there can be multiple ggroups to one table, which all occupy the gbasicdialog
mygroup <- ggroup(container = mywindow, horizontal = FALSE)
mytable <- gtable(a_data_frame, container = mygroup, expand = TRUE, fill = TRUE)
size(mytable) <- c(500, 500) # or any other large enough dimension
exitbutton <- gbutton("Done", container = mywindow,
handler = function(h, ...) {
#some steps
dispose(mywindow)
})
visible(mywindow, TRUE)

如何为交互式/模态窗口显示最大化/最小化按钮,或显示尽可能多的大型小部件?

最佳答案

在查看 Gtk 工具包之后,有一些属于 GtkWindow 的方法。和 GtkDialog . Maximize 方法(自动最大化小部件)适用于两者,但 SetDecorated 方法(显示包含最小化、最大化、关闭按钮的上栏)仅适用于 GtkWindow。

我们可以使用 gwindow 小部件获取调整大小的按钮,同时添加一个重复循环来暂停剩余脚本的执行,保持模式/交互行为。在jverzani的评论中找到的自动最大化小部件的步骤也可以添加到这个gwindow中。

currentenv <- environment() # get current environment
mybool <- FALSE # remains FALSE until the gwindow is closed
mywindow <- gwindow("Display table")

# Implement auto-maximized gwindow if needed
getToolkitWidget(mywindow)$maximize()

# there can be multiple ggroups to one table, which all occupy the gwindow
mygroup <- ggroup(container = mywindow, horizontal = FALSE)
mytable <- gtable(a_data_frame, container = mygroup, expand = TRUE, fill = TRUE)
# Upon exit, assign TRUE to variable denoting gwindow is closed
exitbutton <- gbutton("Done", container = mygroup,
handler = {
# (some steps)
# possibly returning svalue(mytable)

# remove ggroup to prevent error
delete(mywindow, mygroup)

# close window and confirm closure
dispose(mywindow)
assign("mybool", TRUE, envir = currentenv)
})

# Executes repeat loop until mywindow is closed
repeat{
if(mybool){
break
}
}

关于r - gWidgets 调整大小/最大化模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19120250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com