我对微软Windows的R有个问题。
当我使用source('script_file')从'R console‘(Rgui)运行一个脚本,并且我的脚本创建了一个图形设备时,我使用bringToTop()在两个窗口之间切换焦点:
dev.new() # create the graphic device window, and this new window takes the focus
...
bringToTop(-1) # give back the focus to the 'R console' window
...
bringToTop(2) # give the focus to the graphic device window当我的R脚本通过tcltk2库创建GUI窗口时,我无法使GUI窗口聚焦:'R控制台‘仍然是活动窗口,我必须单击GUI窗口来激活它。
library(tcltk2)
...
win1 <- tktoplevel()
tktitle(win1) <- "GUI window"
tkwm.geometry(win1, '300x200+100+100')请注意,如果前面的脚本在Linux中运行,toplevel窗口将成为焦点。
当我从“R控制台”加载“R指挥官”时:
library(Rcmdr)“R指挥官”GUI成为活动窗口。我假设'R指挥官‘GUI使用tcltk2库:'R指挥官’窗口如何从'R控制台‘窃取焦点?
发布于 2017-10-30 11:03:23
它不优雅,但它的作用是:
info_sys <- Sys.info()
if (info_sys['sysname'] == 'Windows') {
shell("powershell -command [void] [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') ; [Microsoft.VisualBasic.Interaction]::AppActivate('GUI window') ")
}https://stackoverflow.com/questions/46962442
复制相似问题