2

我的程序包含一个主窗口,我想在其中显示一个进度条。我使用 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)

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

谢谢

4

1 回答 1

2

这几乎从这个答案中得到了提升。要点是这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)
}
于 2013-07-24T07:51:42.587 回答