You can do that with Gtk2 (Gnome2::Canvas and Goo::Canvas) with it's pango markup; but with Tk you would have to string together a few createText, use the bbox on the text to properly position everthing. You must also consider the anchor. Here is an example, but I hard coded 9 into the position, you probably can figure out a way to compute it( maybe not :-) )
#!/usr/bin/perl
use Tk;
use strict;
my $mw=tkinit;
$mw->fontCreate('big',
-family=>'arial',
-weight=>'bold',
-size=>int(-24*24/14));
my $c = $mw->Canvas(-bg => 'white')->pack;
my $x = 0; my $y = 50;
my $t1 = $c->createText($x+50,$y,
-anchor=>'w',
-fill => 'red',
-font => 'big',
-text => '4',
);
my ($bx,$by,$bx1,$by1)= $c->bbox($t1);
print "$bx $by $bx1 $by1\n";
my $t2 = $c->createText ($bx1,$y+9, #computing 9 is difficult
-anchor=>'w',
# -font => 'big',
-fill => 'black',
-text=> '2');
($bx,$by,$bx1,$by1)= $c->bbox($t2);
print "$bx $by $bx1 $by1\n";
MainLoop;
| [reply] [d/l] |
wow! thanks man, thats a really nice way of doing it :)
tnx again!maybe i could ask some math guru on techniques for solving the "9" position hehehe.
| [reply] |
The problem with computing the 9, I believe, is that the actual character sits in an invisible box. If you could get all fonts to sit on the bottom of the box, they would line up and you could do an easy calculation to align them. BUT... the characters seem to sit in the middle of the box, and the box changes with font size. There are the anchor, and justify options, but I didn't play around with them long enough to see if they can line them up.
| [reply] |
Can't be done, you'll have to find another strategy. | [reply] |