为什么Perl / Tk不会擦除我的电子表格?

时间:2009-05-04 17:58:34

标签: perl spreadsheet tk

[再次发布到Mahalo答案]

我的Perl/Tk script有一个初始电子表格,如使用Tk::TableMatrix::Spreadsheet模块显示的网格。我的电子表格以编程方式称为$ss。在显示第一个电子表格之前,使用

擦除此初始网格
$ss->pack('forget');

现在的脚本也添加了$mw-> pack('forget');,但这不是必需的。

我的问题是如何从文件打开第二个文件 - >打开对话框,它会清除显示的第一个文件,就像第一个文件擦除初始网格一样?现在,第二个文件显示为仍在显示的第一个电子表格下方的完整新框架。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

“pack('forget')”仅从视图中删除小部件。它不会删除它,也不会对其中显示的数据执行任何操作。如果您未能销毁小部件,实际上在创建越来越多的电子表格小部件时会出现大量内存泄漏。

解决问题的最快方法是销毁旧窗口小部件(使用destroy方法)并使用新数据重新创建它。另一种解决方案是保留小部件,但在插入新文件的数据之前使用deleteRows()删除所有现有数据。