Pourquoi Perl / Tk n’efface-t-il pas ma feuille de calcul?
-
03-07-2019 - |
Question
[Croix postée à nouveau pour les réponses Mahalo]
Mon script Perl / Tk a une feuille de calcul initiale comme une grille affichée à l'aide du Tk :: TableMatrix :: Modules de calcul
. Ma feuille de calcul est appelée par programme $ ss
. Cette grille initiale est effacée avant l’affichage de la première feuille de calcul, avec
$ss->pack('forget');
Le script actuel ajoute également $ mw- > pack ('oublier');
, mais ce n'est pas nécessaire.
Ma question est de savoir comment ouvrir un deuxième fichier à partir du fichier Fichier - > Ouvrez la boîte de dialogue et supprimez le premier fichier affiché, tout comme le premier fichier supprime la grille initiale? À l’heure actuelle, le deuxième fichier apparaît sous forme de nouvelle image complète sous la première feuille de calcul toujours affichée.
Merci de l'aide à l'avance.
La solution
" pack ('oublier') " supprime simplement un widget de la vue. Il ne le supprime pas et ne fait rien avec les données affichées. Si vous ne parvenez pas à détruire le widget, vous aurez une grosse fuite de mémoire lorsque vous créez de plus en plus de widgets de feuille de calcul.
La solution la plus rapide à votre problème consiste à détruire l'ancien widget (à l'aide de la méthode destroy) et à le recréer avec les nouvelles données. Une autre solution consiste à conserver le widget mais à utiliser deleteRows () pour supprimer toutes les données existantes avant d'insérer les données du nouveau fichier.