2013-07-24 103 views
2

我的程序包含一个主窗口,我想在其中显示进度条。我使用tcltk和R.在R的现有tcltk窗口中显示进度条R

以下代码显示了如何在新弹出窗口中显示进度条,这不是我想要做的:我希望它在我先前创建的窗口内。

pb <- tkProgressBar("test progress bar", "Some information in %",0, 100, 50) 
Sys.sleep(0.5) 
u <- c(0, sort(runif(20, 0, 100)), 100) 
for(i in u) { 
    Sys.sleep(0.1) 
    info <- sprintf("%d%% done", round(i)) 
    setTkProgressBar(pb, i, sprintf("test (%s)", info), info) 
} 
Sys.sleep(5) 
close(pb) 

我不知道如何将它插入到我的窗口中。

谢谢

+0

你想要的是不够清晰,表现出一定的代码,或者至少说明你已经做了什么给人们更多的色彩保存重做所有的工作,你做了什么 – statquant

回答

2

这是相当多的this answer解除。要点是tkProgressBar不会让你得到你想要的。相反,在tcltk2包中有tk2progress功能。使用该功能,您可以创建一个可以放置在窗口中的小部件。

root <- tktoplevel() 

l1 <- tk2label(root) 
pb1 <- tk2progress(root, length = 300) 
tkconfigure(pb1, value = 0, maximum = 9) 

tkgrid(l1, row = 0) 
tkgrid(pb1, row = 1) 

for (index in 1:10){ 

    tkconfigure(l1, text = paste("Index", index)) 
    tkconfigure(pb1, value = index - 1) 
    Sys.sleep(1) 
}