【问题标题】:tkprogressbar doesn't fit the windowtkprogressbar 不适合窗口
【发布时间】:2014-11-07 13:00:21
【问题描述】:

我正在编写一个 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,就看不到进度条了,因为窗口太小了! 我首先要调整窗口才能看到栏。有没有办法,窗口的大小适合栏? 提前致谢!

【问题讨论】:

    标签: r user-interface progress-bar tk


    【解决方案1】:

    您尚未指定您使用的库。如果是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)
    

    【讨论】:

    • 谢谢,现在已经够长了,但我无法改变高度。它仍然消失了。也许我不得不忍受它。
    • 当您调用close(pb) 时它会消失,如果您希望它停留更长时间,请延迟此操作。如果您在 Windows 下,还请查看winProgressBar
    • 不,我的意思是,进度条仍然消失,因为窗口不够高。但我认为没有其他可能。
    猜你喜欢
    • 2021-05-04
    • 2021-11-24
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多