首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的活动窗口

R中的活动窗口
EN

Stack Overflow用户
提问于 2017-10-26 19:36:27
回答 1查看 327关注 0票数 0

我对微软Windows的R有个问题。

当我使用source('script_file')从'R console‘(Rgui)运行一个脚本,并且我的脚本创建了一个图形设备时,我使用bringToTop()在两个窗口之间切换焦点:

代码语言:javascript
复制
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窗口来激活它。

代码语言:javascript
复制
library(tcltk2)
 ...
win1 <- tktoplevel()
tktitle(win1) <- "GUI window"
tkwm.geometry(win1, '300x200+100+100')

请注意,如果前面的脚本在Linux中运行,toplevel窗口将成为焦点。

当我从“R控制台”加载“R指挥官”时:

代码语言:javascript
复制
library(Rcmdr)

“R指挥官”GUI成为活动窗口。我假设'R指挥官‘GUI使用tcltk2库:'R指挥官’窗口如何从'R控制台‘窃取焦点?

EN

回答 1

Stack Overflow用户

发布于 2017-10-30 11:03:23

它不优雅,但它的作用是:

代码语言:javascript
复制
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') ")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46962442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档