in reply to Re: Perl Tk : How to adjust labels width in textarea with every screen resolution.
in thread Perl Tk : How to adjust labels width in textarea with every screen resolution.

Below is the sample code which depicts what I am trying to achieve,

Hi

perlintro, Modern Perl , the future is now :)

#!/usr/bin/perl -- #!D:\Strawberry\perl\bin\perl.exe ## ## ## perltidy -olq -csc -csci=10 -cscl="sub : BEGIN END if while for " +-otr -opr -ce -nibc -i=4 -pt=0 "-nsak=*" #!/usr/bin/perl -- use strict; use warnings; use diagnostics; use Tk; use Tk::ROText; my $mw = tkinit( -background => '#990033' ); my $sw = $mw->screenwidth; #1920 my $sh = $mw->screenheight; #1080 my $frame_width = $sw * 0.108; print "\$sw : $sw\n\$frame_width : $frame_width\n"; my $frame = $mw->Frame(); #~ my $txt = $frame->ROText( my $txt = $frame->Scrolled( 'ROText', -width => $frame_width, -height => 22, -font => "{sans serif} 10", -background => 'lightgray' ); Enter_labels_in_textarea( $txt->Subwidget('scrolled'), enter_values( $frame_width ) ); $txt->insert('end', "\n\n\n\n".rand."\n" ); $frame->pack(qw/ -expand 1 -fill both /); $txt->pack(qw/ -expand 1 -fill both /); #~ $txt->grid( -row => 9, -column => 1 ); #~ $txt-> $mw->WidgetDump; MainLoop(); exit( 0 ); sub Enter_labels_in_textarea { my( $rotext, $enter_values ) = @_; foreach my $val (@$enter_values) { my( $text, @options ) = @$val; my $label = $txt->Label( -foreground => 'white', -font => 10, -height => 1, -cursor => 'leftbutton', -relief => 'raised', -justify => 'left', -text => $text, @options, ); $rotext->windowCreate( 'end', -window => $label , ); print "$label $text @options\n"; } } sub enter_values { my( $frame_width ) = @_; return [ [ 1, -background => 'navyblue', -width => ( $frame_width * ((2+length '1') /100) ) ], [ 'NAME', -background => '#990033', -width => ( $frame_width * 0.16 ), ], [ 'AGE', -background => '#990033', -width => ( $frame_width * ((2+length 'AGE') /100) ), ], [ 'PROFESSION', -background => '#990033', -width => ( $frame_width * ((2+length 'PROFESSION')/100) ), ], [ 'CONTACT', -background => '#FF0000', -width => ( $frame_width * 0.16 ), ], [ 'ADDRESS', -background => 'darkgreen', -width => ( $frame_width * 0.24 ), ], ]; }
  • Comment on Re^2: Perl Tk : How to adjust labels width in textarea with every screen resolution.
  • Download Code

Replies are listed 'Best First'.
Re^3: Perl Tk : How to adjust labels width in textarea with every screen resolution.
by Anonymous Monk on Dec 04, 2019 at 07:54 UTC

    Hi, Thank you for this code, let me check and revert.

    But I am wondering what makes this code to get all the 5 lables on separate line of textarea on each and every resolutions on different machines.

    Regards

      The butterflies?

        Yeah :)

Re^3: Perl Tk : How to adjust labels width in textarea with every screen resolution.
by Anonymous Monk on Dec 04, 2019 at 18:05 UTC

    Hi, This doesn't seem working for me (for recommended screen resolution 1920*1080), "ADDRESSS" seems going on next line as width of the ADDRESS is more than it should be.

    Thanks

      Hi, This doesn't seem working for me (for recommended screen resolution 1920*1080), "ADDRESSS" seems going on next line as width of the ADDRESS is more than it should be.

      Me neither.

      I've read it three times now.

      Its not working for me.

      Maybe you can try something besides saying it doesn't work for you.

      Look at the numbers or something.

      Make a connection between the characters and pixels.

        Hi, Yes I definitely need to try out something else.
        Thank you