Experimenting with Fonts
You don’t generally want to hardcode font specifications in your programs. Simply put, it prevents your users from customizing your applications. There are extenuating circumstances, though; you might have an HP calculator that has a specific look that shouldn’t be changed (see Chapter 15). Creating such a specific look might require one or more particular fonts.
One way to determine what font to use is
to write a program using the fontFamilies method
that displays various font specifications. So, before we get into the
details of creating a font definition, let’s look at a program
that lets us play around with the fonts on our system. This program
is useful no matter what operating system you’re on.
use Tk; use Tk::BrowseEntry; use strict; my $mw = MainWindow->new(-title => 'Font Viewer'); my $f = $mw->Frame->pack(-side => 'top'); my $family = 'Courier'; my $be = $f->BrowseEntry(-label => 'Family:', -variable => \$family, -browsecmd => \&apply_font)->pack(-fill => 'x', -side => 'left'); $be->insert('end', sort $mw->fontFamilies); my $size = 24; my $bentry = $f->BrowseEntry(-label => 'Size:', -variable => \$size, -browsecmd => \&apply_font)->pack(-side => 'left'); $bentry->insert('end', (3 .. 32)); my $weight = 'normal'; $f->Checkbutton(-onvalue => 'bold', -offvalue => 'normal', -text => 'Weight', -variable => \$weight, -command => \&apply_font)->pack(-side => 'left'); my $slant = 'roman'; $f->Checkbutton(-onvalue => 'italic', -offvalue => 'roman', -text ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access