Можно ли с помощью TK создавать текстовые области с полосами прокрутки, которые при прокрутке перемещаются и по другой?
Я хочу создать текстовую область с заголовками, а затем текстовые области под заголовками строк в одном и данными в другом. Вроде как, когда вы замораживаете панели в Excel. У меня есть данные в наборе массивов для каждой строки, поэтому все, что мне нужно, это способ связать полосы прокрутки в каждой из текстовых областей, чтобы верхняя вниз в данных также управляла заголовками строк и наоборот, а левая один из правых данных управляет заголовками столбцов и наоборот.
Вероятно, это невозможно, но спросить не помешает
ИЗМЕНИТЬ
Итак, у меня есть код, и он почти делает то, что я хочу, но мне нужна помощь, чтобы заставить его работать полностью. Пример кода показывает, что если вы перемещаете одну полосу прокрутки, она действительно управляет другой текстовой областью и наоборот, но не управляет своей собственной текстовой областью. Есть ли способ добавить несколько xviews в команду, чтобы она одновременно перемещала обе текстовые области? время. заранее спасибо
use Tk;
use Tk::ROText;
my @headers = ( "+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| | M | M | M | M | M | M | M | M | M | M | M | M | M | M |",
"| | P | P | P | P | P | P | P | P | P | P | P | P | P | P |",
"| | L | L | L | L | L | L | L | L | L | L | L | L | L | L |",
"| | R | R | R | R | R | R | R | R | R | R | R | R | R | R |",
"| | D | D | D | D | D | D | D | D | D | D | D | D | D | D |",
"| | F | F | F | F | F | F | F | F | F | F | F | F | F | F |",
"| | D | D | D | D | D | D | D | D | D | D | D | D | D | D |",
"| | S | S | S | S | S | E | E | E | E | E | E | B | B | B |",
"| | O | O | O | O | O | V | V | V | V | V | V | A | A | A |",
"| | A | A | A | A | A | F | F | F | F | F | F | Q | Q | Q |",
"| | K | K | K | K | K | B | C | F | G | H | I | A | A | A |",
"| | 1 | 5 | 6 | 7 | 8 | | | | | | | 1 | 2 | 3 |");
my @info = ( "+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHADHRDT | | | | | | | | | | | | | | 1|",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHBAERDT | | 4| | 4| | | | | | | | | | |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHEE1RDT | | | 13| | | | | | 48| | | | | |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHLM2RDT | 96| | | | | | | | | | | | | |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHLSERDT | | | | | | | | | | | | | 7| |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHLW1RDT | | | | | | | | | | | 9304| | | |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+",
"| LHUP1RDT | | | | | 160|84385| | | | 271| | | | |",
"+----------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+");
my $mw = MainWindow->new ( -background => "GREY" );
$mw->title("What Gap Issues There Have Been");
$mw->resizable(0, 0);
$mw->focus;
$mw->geometry("600x400");
my $TA1F = $mw->Frame(-width=>5,-height=>5,-foreground=>"BLUE",-background=>"GREY",-borderwidth=>2,-relief=>'groove')->place(-x=>5,-y=>5);
my $TA1 = $TA1F->Scrolled( 'ROText', -scrollbars => 'se', -height => 10)->pack(-side => 'left');
$TA1->configure(-background => "GREY",-wrap=>"none");
$TA1->insert('end', "$_\n") foreach @headers;
my $TA2F = $mw->Frame(-width=>5,-height=>5,-foreground=>"BLUE",-background=>"GREY",-borderwidth=>2,-relief=>'groove')->place(-x=>5,-y=>200);
my $TA2 = $TA2F->Scrolled( 'ROText', -scrollbars => 'se', -height => 10)->pack(-side => 'left');
$TA2->configure(-background => "GREY",-wrap=>"none");
$TA2->insert('end', "$_\n") foreach @info;
$TA1->Subwidget("xscrollbar")->configure(-command => ['xview', $TA2]);
$TA2->Subwidget("xscrollbar")->configure(-command => ['xview', $TA1]);
$mw->focus;
MainLoop;
exit 0;