2011-03-16 43 views
3

TclTk在R中工作正常,只是我可以看到窗口正在构建时窗口放置在窗口上。有没有一种方法可以隐藏窗口,并且只有在窗口生成后才显示出来?将以下内容粘贴到R中,您会看到填满的窗口。这是我不希望用户看到的(如果可能的话)。谢谢。如何在绘制R时隐藏TclTk窗口

require(tcltk) 
dlg = tktoplevel() 
# command to hide window ? 
for (i in 1:10) { 
    l = list() 
    for (i in 1:20) l[[i]]=tkbutton(dlg,text="SO") 
    do.call(tkgrid,l) 
} 
# command to show window now it is built ? 
tkwait.window(dlg) 
tkdestroy(dlg) 

回答

4

,我有以下模式中gWidgetstcltk:

library(tcltk) 
tclServiceMode(FALSE) 
win <- tktoplevel() 
tkwm.state(win,"withdrawn") 
tclServiceMode(TRUE) 

## ... do your thing then: 
tkwm.state(win,"normal") 
+1

谢谢!! tclServiceMode()完美工作,不需要调用tkwm.state()。作为奖励,该窗口现在也立即出现,从中我得出结论,每个窗口小部件添加后的窗口重绘是相当昂贵的(而不是TclTk本身)。 – 2011-03-17 19:32:50

2

你可以只是包装在大括号整个事情。到目前为止,这对我很有用。

喜欢的东西:

{ # Begin building window 
    (code) 
} # End building window 
+0

非常感谢。下次我需要这样做时,我一定会放弃它。 – 2012-12-01 14:44:51