Pregunta

¿Cómo se crea la línea de estado en la parte inferior de la ventana? Una entrada inactiva no se ve muy bonito. ¿Qué otras opciones hay?

¿Es posible integrar una barra de progreso que es visible sólo en la demanda?

(estoy usando tk y ttk desde dentro de R).

Editar : Ahora aquí es mi segunda versión, que funciona bien para mí, pero me gustaría mostrar toda la barra de estado en la demanda sólo (similar a lo que hace la barra de estado del navegador Chrome ). ¿Cómo puedo hacer eso? Llamando tklower (f) no ayuda ...

library(tcltk)
library(tcltk2)
tkdestroy(root)
root <- tktoplevel()
status <- tclVar("")
progress <- tclVar("0")
b <- tk2button(root, text="fake doing something!")
tkpack(b, padx=40, pady=10)
o <- tk2checkbutton(root, text="show progress", variable=progress)
tkpack(o, pady=10)

f <- tk2frame(root, relief="sunken")
l <- tk2label(f, textvariable=status)
tkpack(l, side="left", pady=2, padx=5, expand=0, fill="x")
tkpack(f, side="left", expand=1, fill="x", anchor="s")

sg <- ttksizegrip(root)
tkpack(sg, side="left", expand=0, anchor="se")

doit <- function() {
    tclvalue(status) <- "working (hard) ..."
    tcl("update")
    do.pb <- tclvalue(progress)=="1"
    if(do.pb) {
        pb <- tk2progress(f, length=60, mode="determinate")
        tkpack(pb, side="right", expand=0, padx=3, pady=2)        
        tkconfigure(pb, maximum=100, value=0)
    }
    for(i in 1:100) {
        if(do.pb) {
            tkconfigure(pb, value=i)
            tcl("update")
        }
        Sys.sleep(0.03)
    }
    if(do.pb) tkdestroy(pb)
    tclvalue(status) <- "Ready."
}
tkconfigure(b, command=doit)

tclvalue(status) <- "Ready."
¿Fue útil?

Solución

Yo uso un widget ttk::frame. En ese Voy a colocar una o más widgets ttk::label, y un widget ttk::sizegrip en el extremo derecho.

En cuanto a la barra de progreso - sólo tiene que añadir que, como de costumbre. Si utiliza la red, puede utilizar grid remove para quitarlo de la barra de estado, pero rejilla recordará su configuración para que pueda agregar de nuevo a la derecha. O bien, puede lower de usuario y raise para quitarlo de la vista y traerlo de vuelta otra vez.

Tu pregunta sobre el widget SizeGrip no está claro. ¿Qué hay de que no funciona para usted en las ventanas?

Otros consejos

Por línea de estado qué se refiere como la barra de estado se encuentra en la parte inferior de la mayoría de las ventanas del navegador? Si es así, que suelen utilizar una etiqueta con su textVariable ligado a una variable que contiene la cadena de estado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top