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

发布于 2024-07-18 02:33:41 字数 510 浏览 5 评论 0原文

[再次交叉发布到 Mahalo 答案]

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

$ss->pack('forget');

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

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

我在这里先向您的帮助表示感谢。

[cross posted again to Mahalo answers]

My Perl/Tk script has an initial spreadsheet like grid displayed using the Tk::TableMatrix::Spreadsheet modules. My spreadsheet is programatically called $ss. This initial grid is wiped before the display of the first spreadsheet, with

$ss->pack('forget');

The script as it is now also adds $mw-> pack('forget');, but that's not necessary.

My question is how to open a second file from the File -> Open dialog box and it wipe out the first file displayed, just like the first file wipes out the initial grid? Right now the second file shows up as a complete new frame underneath the still displayed first spreadsheet.

Thanks for the help in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拔了角的鹿 2024-07-25 02:33:41

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

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

"pack('forget')" merely removes a widget from view. It doesn't delete it, nor does it do anything with the data displayed within it. If you fail to destroy the widget you will have, in effect, a big memory leak as you create more and more spreadsheet widgets.

The quickest solution to your problem is to destroy the old widget (using the destroy method) and recreate it with the new data. Another solution is to keep the widget but use deleteRows() to remove all the existing data before inserting the data for the new file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文