我编写简单的Perl / Tk应用程序,我需要将二维数组视为网格,例如Delphi的StringGrid。但我找不到类似于StringGrid的Tk小部件。有没有类似的小部件?
答案 0 :(得分:2)
是的,有一个类似StringGrid的部分。有2个模块可用于此目的。 Number 1和Number 2。我认为Nr1正是你要找的。
以下是一个简单使用的简短示例:
use strict;
use warnings;
use Tk;
use Tk::TableMatrix::Spreadsheet;
my $mw = Tk::MainWindow->new(-width => 380, -height => 400,);
$mw->packPropagate(0);
my %table = ();
my $t = $mw->Scrolled(
'Spreadsheet',
-cols => 4,
-rows => 500,
-width => 4,
-titlerows => 1,
-titlecols => 0,
-variable => \%table,
-selectmode => 'extended',
-titlerows => 1,
-titlecols => 1,
-bg => 'white',
-bg => 'white',
-scrollbars => 'se',
);
my $l = $t->Label(-text => 'text',);
$t->set('1,2', "Name");
for( my $c = 0; $c < 500; $c++ ) {
$t->set("$c,0", $c);
$t->set("$c,1", $c*100);
$t->set("$c,2", $c^17);
$t->set("$c,3", $c/5);
}
$t->pack(-fill => 'both', -expand => 1);
$mw->MainLoop();