Perl / Tk的StringGrid模拟

时间:2014-03-19 16:42:50

标签: perl tk

我编写简单的Perl / Tk应用程序,我需要将二维数组视为网格,例如Delphi的StringGrid。但我找不到类似于StringGrid的Tk小部件。有没有类似的小部件?

1 个答案:

答案 0 :(得分:2)

是的,有一个类似StringGrid的部分。有2个模块可用于此目的。 Number 1Number 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();