如何解决当我们有大量小部件时如何提高 perl Gtk2 性能
我正在使用 Gtk2 编写 perl GUI,它有一个滚动窗口,其中包含许多 GTk2::Expander,其中包括不同的小部件。 问题是当我有大量扩展器(~80,000)时,执行 show_all() 所需的时间很长,而当我打开单个扩展器时需要几秒钟。使用较少的扩展器运行相同的脚本可提供非常快的响应。
由于我的扩展器存在于滚动窗口中并且只有其中的一部分真正可见,有没有办法提高性能?喜欢只显示可见的扩展器并将所有其他扩展器隐藏?
我不能使用 GTK3,我只需要使用 Perl 和 Gtk2。
示例代码:
my $ItemsCount = 10000;
my $ScWin = Gtk2::ScrolledWindow->new(undef,undef);
my $Frame = Gtk2::Frame->new('Items');
my $ItemsBox = Gtk2::Table->new(2,$ItemsCount+1,FALSE);
my $View = Gtk2::Viewport->new();
$ScWin->set_policy('automatic','automatic');
$View->add($ItemsBox);
$ScWin->add($View);
for my $i (0 .. $ItemsCount-1) {
my $exp = Gtk2::Expander->new();
$exp ->set_label("Item #$i");
$ItemsBox->attach($exp,1,$i,$i+1,'fill',2);
}
$MainBox ->pack_start ($ScWin,TRUE,0);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。