Hi Monks,
Below is the sample code which depicts what I am trying to achieve,
on my desktop with resolution (1920*1080), all labels are fitting well in the line, but when I try it on laptop with different resolution, labels could go on the next line due to width changes or they will be having less width than it should be.
#!D:\Strawberry\perl\bin\perl.exe
use strict;
use Tk;
use Tk::ROText;
my($cnt, $w0,$w1,$w2,$w3,$w4,$w5);
# Main Window
my $mw = new MainWindow(-background =>'#990033');
###FOCUS ON MAIN WINDOW
$mw->focus();
my $sw = $mw->screenwidth; #1920
my $sh = $mw->screenheight; #1080
my @enter_values = (1,'NAME','AGE','PROFESSION','CONTACT','ADDRESS');
######################################################################
##Text Area
my $textarea_width = $sw*0.108;
print "\$sw : $sw\n\$textarea_width : $textarea_width\n";
my $textarea = $mw->Frame();
my $txt = $textarea->ROText(-width=>$textarea_width,-height=>22,-font=
+>"{sans serif} 10", -background => 'lightgray');
my $srl_y = $textarea->Scrollbar(-orient=>'v',-command=>[yview=>$txt])
+;
my $srl_x = $textarea->Scrollbar(-orient=>'h',-command=>[xview=>$txt])
+;
$txt-> configure(-yscrollcommand=>['set', $srl_y],
-xscrollcommand=>['set',$srl_x]);
&Enter_labels_in_textarea;
###Text Area
$textarea->grid;
$txt->grid(-row=>9,-column=>1);
$srl_y->grid(-row=>9,-column=>2,-sticky=>"ns");
$srl_x->grid(-row=>10,-column=>1,-sticky=>"ew");
MainLoop;
sub Enter_labels_in_textarea
{
$cnt = 0;
foreach my $val(@enter_values){
##print "\$val => $val\n\n";
if($cnt == 0){
$w0 = $txt->Label(-text =>"$val",-foreground =>'white',-background =>'
+navyblue',-font=>10, -width=>($textarea_width*0.025), -height=>1, -cu
+rsor => 'leftbutton', -relief =>'raised',-justify=>'left');
print "\$w0 : $w0\n";
$txt->windowCreate('end', -window => $w0);
}
elsif($cnt == 1){
$w1 = $txt->Label(-text =>"$val",-foreground =>'white',-background =>'
+#990033',-font=>10, -width=>($textarea_width*0.16), -height=>1, -curs
+or => 'leftbutton', -relief =>'raised',-justify=>'left');
$txt->windowCreate('end', -window => $w1);
}
elsif($cnt == 2){
$w2 = $txt->Label(-text =>"$val",-foreground =>'white',-background =>'
+#990033',-font=>10, -width=>($textarea_width*0.10), -height=>1,-relie
+f =>'raised',-justify=>'left');
$txt->windowCreate('end', -window => $w2);
}
elsif($cnt == 3){
$w3 = $txt->Label(-text =>"$val",-foreground =>'white',-background =>'
+#990033',-font=>10, -width=>($textarea_width*0.10), -height=>1,-relie
+f =>'raised',-justify=>'left');
$txt->windowCreate('end', -window => $w3);
}
elsif($cnt == 4){
$w4 = $txt->Label(-text =>"$val",-foreground =>'white',-background
+=>'#FF0000',-font=>10, -width=>($textarea_width*0.10), -height=>1,-re
+lief =>'raised',-cursor => 'leftbutton',-justify=>'left');
$txt->windowCreate('end', -window => $w4);
}
else
{
$w5 = $txt->Label(-text =>"$val",-foreground =>'white',-background =>'
+darkgreen',-font=>10, -width=>($textarea_width*0.14), -height=>1,-rel
+ief =>'raised',-cursor => 'leftbutton',-justify=>'left');
$txt->windowCreate('end', -window => $w5);
}
$cnt++;
}
}
Thank you
|