Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re^5: Perl tk - open file and print content

by zentara (Archbishop)
on Jan 19, 2012 at 16:54 UTC ( #948817=note: print w/replies, xml ) Need Help??

in reply to Re^4: Perl tk - open file and print content
in thread Perl tk - open file and print content

Can you suggest me the correct sintax to link print@line in $mw....???

You can't print in the $mw directly, but you can print to a Scrolled Text Widget in the $mw.

#!/usr/bin/perl use warnings; use strict; use Tk; open (FH,"<$0") or warn "$!\n"; my @lines = <FH>; close FH; my $mw = MainWindow->new(-title=>'Colored Text'); $mw->geometry(($mw->screenwidth-10) . 'x' . ($mw->screenheight-10) . '+0+20'); $mw->fontCreate('big', -family=>'arial', -weight=>'bold', -size => 25 ); my $text = $mw->Scrolled("Text", -scrollbars => 'osw', -background => 'white', -font =>'big', -wrap => 'none', )->pack; $text->tagConfigure('greyline', -background => 'grey95'); my $toggle = -1; for (@lines) { my $greyline; if( $toggle == 1 ){ my $greyline = '' } else { $greyline = 'greyline' } $text->insert('end',"$_",$greyline); $toggle *= -1; } MainLoop;

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

Replies are listed 'Best First'.
Re^6: Perl tk - open file and print content
by Giorgio C (Novice) on Jan 20, 2012 at 10:58 UTC
    Thanks you for your reply and herlp. Unfortunately with this script i didn't resolve my problem. Because this print out the code of the script itself. I would like to print in that scrolled txt widget what i choose to open when i push a button. ( "open" that calls the function 'Get_open_file' that show me the dir of my PC, than choosing a txt file it should be printed in that scrolled widgets. I don't know if i have been clear! I hope you understand me....please save me ! It's really important
      If you want to print multiple files, it might be best to push all file selections into an array, then send the whole array to the printer, after selections are done. There are many ways to do it.
      #!/usr/bin/perl use Tk; use strict; my $TOP = MainWindow->new; my $button = $TOP->Button(-text=> 'Print It' , -command => sub{ my $file_r = &fileDialog($TOP); print"\n selected this file $file_r\n"; # use whatever method you want to send # $file_r to the printer # like with Net::Cups print " printing now!\n"; # system( "lpr -lp0 -f $file_r"); #untested } )->pack(); MainLoop; sub fileDialog { my( $w ) = @_; my @types =( ["C files", [qw/.c++ .cpp .c/]], ["Log files", [qw/.log/]],, ["Text files", [qw/.txt/]], ["All files", '*'] ); my $file = $w->getOpenFile( -filetypes => \@types ); return($file); }

      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh
        Pheraps i can't explain my self, i try to post the code so you can see where i wrong:
        #......All the menu items are not showed in the code, only the part of + interest.....: # OPEN FILE + $file->command( -label => 'Open', -accelerator => 'Ctrl-o', -underline => 0, -command => \&open_file); $mw->bind('<Control-o>', [\&open_file]); #SUPPORTED FILES TO OPEN my $types_OPEN = [ ['SFF files', '.sff'], ['All Files', '*'],]; sub open_file {my $open = $mw->getOpenFile(-filetypes => $types_OPEN, -defaultextension => '.sff'); $read_fh = IO::File->new("$open",'r'); read_text($read_fh); } sub read_text { my @lines; @lines = <$read_fh>; my $mw = MainWindow->new(-title=>'Colored Text'); $mw => print @lines; MainLoop }
        ........................................................ Now, the script works fine and the content of any opened file is printed out in the terminal! The problem is that i would like to print the content in a GUI windows (not only in the terminal, i'm using UBUNTU) but here the windows is opened but is blank !! Please don't call me pesky, but can you correct this script so to obtain what i need!!! TNX a lots

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://948817]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2017-03-24 02:45 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (295 votes). Check out past polls.