Pregunta

[cruzado publicado de nuevo a las respuestas de Mahalo]

Mi secuencia de comandos Perl / Tk tiene una hoja de cálculo inicial como la cuadrícula que se muestra usando Tk :: TableMatrix :: Hoja de cálculo módulos. Mi hoja de cálculo se llama programáticamente $ ss . Esta cuadrícula inicial se borra antes de la visualización de la primera hoja de cálculo, con

$ss->pack('forget');

El script tal como está ahora también agrega $ mw- > paquete ('olvidar'); , pero eso no es necesario.

Mi pregunta es cómo abrir un segundo archivo desde el archivo - > Abre el cuadro de diálogo y borra el primer archivo mostrado, igual que el primer archivo borra la cuadrícula inicial. En este momento, el segundo archivo se muestra como un nuevo marco completo debajo de la primera hoja de cálculo que aún se muestra.

Gracias por la ayuda por adelantado.

¿Fue útil?

Solución

" paquete ('olvidar') " simplemente elimina un widget de la vista. No lo elimina, ni hace nada con los datos que se muestran en él. Si no puede destruir el widget, tendrá, en efecto, una gran pérdida de memoria a medida que cree más y más widgets de hoja de cálculo.

La solución más rápida a su problema es destruir el widget antiguo (usando el método de destrucción) y recrearlo con los nuevos datos. Otra solución es mantener el widget pero usar deleteRows () para eliminar todos los datos existentes antes de insertar los datos para el nuevo archivo.

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