2011-03-16 50 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