我有一个应用程序,它从文件系统读取数据并根据文件内容在 3x3 网格中动态创建小部件。如果我需要用一个新的小部件的信息来替换其中一个小部件(或缺少的小部件),那么原来的小部件会发生什么(下面的示例)。如果此应用程序运行很长时间,请尝试避免任何潜在的内存泄漏。
foreach my $i (0..2) {
foreach my $j (0..2) {
my $box = $mw->Label(-text => "$i/$j")->grid(-row=> $i, -column => $j);
}
}
my $replacementBox = $mw->Label(-text => "replacement")->grid(-row=> 1, -column => 1);
它成功替换了示例中的小部件,但在谷歌搜索此问题时找不到结果。谢谢!
我多次尝试更换盒子,但内存消耗的增加确实很小。如果您不打算创建数十万个盒子,则无需担心。
#!/usr/bin/perl
use warnings;
use strict;
use Tk qw{ MainLoop };
my $mw = 'MainWindow'->new;
for my $i (0..2) {
for my $j (0..2) {
my $box = $mw->Label(-text => "$i/$j")->grid(-row=> $i, -column => $j);
}
}
my @boxes;
$mw->repeat(10, sub {
push @boxes, $mw->Label(-text => "replacement " . $#boxes)->grid(-row=> 1, -column => 1);
});
MainLoop();