Beefy Boxes and Bandwidth Generously Provided by pair Networks Ovid
There's more than one way to do things
 
PerlMonks  

Re: Re^3: How to replace Tab with spaces not altering postion

by juo (Curate)
on Oct 09, 2002 at 16:46 UTC ( #203990=note: print w/ replies, xml ) Need Help??


in reply to Re^3: How to replace Tab with spaces not altering postion
in thread How to replace Tab with spaces not altering postion

You are right, it should work. However with me it is not working and I guess this is a bug or something else in the listbox module of Tk. Below you can find an example using your example were it comes out bad in the listbox.

#!/usr/bin/perl -w use strict; use warnings; use Tk; $|++; my $W; my $c; my $lab; my @newtext; use Text::Tabs; my $tabstop = 8; my $text = "Shape:r59\tX-loc:9.77\tY-loc:5.608"; my $text1 = "Shape:r59\tX-loc:9.8819\tY-loc:0"; push @newtext,($text,$text1); my @newtext = expand(@newtext); $c = initCanvas4(); sub initCanvas4 { $W = MainWindow->new; $W->title("Fiducial Information"); $W->iconname('Fiducial Information'); my $canv = $W->Canvas(qw/-relief sunken -relief flat -bd 0 -width 512 +-height 350 -background SlateGray3/); $canv->pack; return $canv; } # Create a listbox with the contents of the directory. + my $ent = $c->Scrolled(qw/Listbox -setgrid 1 -height 3 -width 40 -scro +llbars e -selectmode single/); for(@{newtext}) { $ent->insert(0, "$_"); } #$ent->bind('<Double-Button-1>', # sub { # $file_selected = $ent->get('active'); # # } $c->createWindow('10p 80p', -window => $lab, -anchor => 'nw' ); $c->createWindow('10p 95p', -window => $ent, -anchor => 'nw' ); MainLoop;


Comment on Re: Re^3: How to replace Tab with spaces not altering postion
Download Code
Re: Re: Re^3: How to replace Tab with spaces not altering postion
by BrowserUk (Pope) on Oct 09, 2002 at 18:42 UTC

    The reason your text doesn't line up is probably because you have a proportional font being used in your list box.

    To display tab-columnated data you will need to instruct the listbox to use a non-proportional font.



    Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!

      The text is non-proportional. Each charachter represent the same length. So it is still something else. The secone problem is true. The my is not good for $tabstop. Sorry I take my words back. The problem was indeed that the font was proportional different even tough I didn't look that way. It looks like Courier is one of the only fonts non-proportional. Took me looking for ever to find that out while the solution was at hand. Thanks. It sometimes is in the details

Re: Re: Re^3: How to replace Tab with spaces not altering postion
by BrowserUk (Pope) on Oct 09, 2002 at 19:00 UTC

    Actually, there is a second problem with your sample code, Text::Tabs uses a global var $tabstop for control (Yuck!) but you are using a my var. You will need to change that.



    Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://203990]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2014-04-20 19:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (486 votes), past polls