tkprogressbar不适合窗口

时间:2014-11-07 13:00:22

标签: r user-interface progress-bar tk

我正在编程GUI并想使用进度条。我的代码:

    load <- function(x,y){
      k <- 10

     bar <- tkProgressBar(title = "Bla ...",
                    label = "Progress", 
                    0, ## minimum value
                    100, ## maximal value
                    0 ## initial value,
                     )

# show progress

    j <- i/length(data)*100
    if(j<k){
    } else{
      loading <- sprintf("%d%% ready",round(k))

      setTkProgressBar(pb = bar,
                       value = k, 
                       title = sprintf("Load Data.. (%s)", loading)
      )
     k <- k+10
    }

这确实很好用,但是如果出现带有进度条的Window,则无法看到进度条,因为窗口太小了! 我首先要调整窗口才能看到栏。有没有办法,窗口的大小适合吧? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您还没有指定您使用的库。如果是library(tcltk),请考虑切换到library(tcltk2)。如果您已经在使用后者,则可以使用参数width。该示例改编自?tkProgressBar

demo <- function(w)
{
  pb <- tkProgressBar("test progress bar", "Some information in %",
                      0, 100, 50, width=w)
  Sys.sleep(1)
  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(2)
  close(pb)
}

demo(100)
demo(500)