in reply to Re^5: Tk ::TableMatrix
in thread Tk ::TableMatrix

Since the table is user defined, lets say the user makes a mistake so he goes back and sets other values. How do you make the initial table disappear? I tried using destroy() but that just takes off the table completely and doesn't allow it to comeback. Is there another option that just updates the table? For example:
#!/usr/bin/perl use warnings; use strict; use Tk; require Tk::TableMatrix; require Tk::Pane; my $mw = MainWindow->new; my $arrayVar = {}; my $t; $mw->Button(-text => "Create Table", -command => \&create_table)->pack +(); sub create_table { # usage programname rows cols my ( $rows, $cols ) = @ARGV; #Then you could test if anything passed: if ( !defined $rows ) { $rows = 4 } if ( !defined $cols ) { $cols = 4 } my $mw = tkinit; $mw->geometry('400x400'); my $tp = $mw->Scrolled('Pane', -sticky => 'nw', )->pack( -fill =>'both', -expand => 1, ); my $bf = $mw->Frame()->pack(); my $t = $tp->TableMatrix( -cols => $cols, -rows => $rows, )->pack(-fill =>'both', -expand => 1 ); $bf->Button(-text=> 'add column', -command=>sub{$t->packPropagate(1); $t->insertCols(0,1); $mw->update; }, )->pack(-side => 'left'); $bf->Button(-text=> 'add row', -command=>sub{$t->packPropagate(1); $t->insertRows(0,1); $mw->update; }, )->pack(-side => 'right'); } MainLoop;

Replies are listed 'Best First'.
Re^7: Tk ::TableMatrix
by zentara (Cardinal) on Jul 17, 2008 at 17:19 UTC
    Add these 2 buttons. If your user dosn't like it, tell him to close the program and start over feeding it the right rows and cols. These are easily answered questions if you just read the documentation. You are going to have to start learning to fish for yourself, I'm not going to write all your code for you. Read "perldoc Tk::TableMatrix", and search groups.google.com for things like "perl Tk TableMatrix".

    Also search for things like "Perl Tk::Dialog" so you can ask your users for settings, while the program is running.

    If you want to change the rows/cols in one fell swoop, pop a dialog, asking for the desired rows/cols, then packForget the TableMatrix, use configure on it to set the new rows/cols, then pack it again.

    $bf->Button(-text=> 'del column', -command=>sub{$t->packPropagate(1); $t->deleteCols(0,1); $mw->update; }, )->pack(-side => 'left'); $bf->Button(-text=> 'del row', -command=>sub{$t->packPropagate(1); $t->deleteRows(0,1); $mw->update; }, )->pack(-side => 'right');

    I'm not really a human, but I play one on earth CandyGram for Mongo