2013-07-24 132 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) 
}