When I wrote the code that this was derived from more than decade ago, it had to run on a super wimpy lap top and I broke object encapsulation by writing the $tMain variable directly instead of calling the object's read/write methods for performance reasons. Very ugly, but it worked. You probably don't have to do that. If you do that, then the way that I caused a screen refresh was by setting the column widths again.
I am not sure from your code what you want in terms of appearance that cannot be done with TableMatrix?
Update: 100,000 cells is easy with this. Could you make a simple example with perhaps 10 labels to demo the kind of "look" that you are trying to achieve?use strict; use warnings; use Tk; use Tk::TableMatrix; use Data::Dump qw(pp); my $mw = MainWindow->new; $mw->configure(-title=> "Some Title"); $mw->geometry("1000x400+0+0"); my $table_frame = $mw->Frame(-height=>'10',-width=>'30', -relief=>'groove',-borderwidth=>'3' )->pack(-expand=>1, -fill=>'both',-pady=>'0'); my $tMain; my @col_heads = map{"col# $_";}0..1999; my $col =0; foreach my $heading (@col_heads) { $tMain->{"0,$col"} = "$heading"; $tMain->{"1,$col"} = "$heading"; $col++; } my $table = $table_frame->Scrolled('TableMatrix', -cols => scalar(@col_heads), -rows =>16, #fixed number of rows for this example # -width => 5, #minimum width in columns to be shown # -height => 10, #minimum number of rows to be shown - seems to limit! +! not Min! # -titlerows => 1, -variable => $tMain, # -selectmode => 'single', -state => 'disabled', # no direct editing of cells -resizeborders => 'col', -bg => 'white', # -rowheight => 2, -rowheight => 1, #make row display more compact.... -bd => [0,1,0,1], -justify => 'left', -drawmode => 'compatible', -wrap => 0, -relief => 'solid', -scrollbars=>'se', -exportselection =>0, )->pack(-expand =>1, -fill=>'both'); $table->rowHeight(0,2); #varies height of title row (0) #$table->tagRow('title',0); #$table->tagConfigure('title', -bd=>2, -relief=>'raised'); MainLoop;
Update2: I suppose that Tk:Table might be appropriate for you? Tk::Table is an all-perl widget/geometry manager which allows a two dimensional table of arbitary perl/Tk widgets to be displayed.. I don't think so, but that might be true.
In reply to Re: Tk::Pane widget size limit?
by Marshall
in thread Tk::Pane widget size limit?
by jbuck
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |