2009-05-04 53 views
0

[横再次发布到马洛答案]为什么Perl/Tk不能擦拭我的电子表格?

Perl/Tk script具有使用Tk::TableMatrix::Spreadsheet模块显示像网格的初始电子表格。我的电子表格在编程上称为$ss。因为它是现在还增加了$mw-> pack('forget');,但是这不是必要的这个初始网格的第一个电子表格显示之前擦拭,用

$ss->pack('forget'); 

脚本。

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

感谢您的帮助提前。

回答

1

“包(忘')”只是删除从视图中的窗口小部件。它不会删除它,也不会对其中显示的数据做任何事情。如果您无法销毁小部件,实际上,您将创建越来越多的电子表格小部件,从而产生大量内存泄漏。

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