我的程序包含一个主窗口,我想在其中显示进度条。我使用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 :(得分:2)
这几乎从this answer解除了。要点是tkProgressBar
不会得到你想要的东西。相反,tk2progress
包中的函数tcltk2
。使用该功能,您可以创建一个可以放在窗口中的小部件。
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)
}