Using Fonts

Now that we know what comprises a font, let’s look at a few ways we can specify them in code.

We simplify things in our Perl/Tk applications by being able to create a single name that refers to a combination of family, size, weight, slant, underline, and overstrike:

$code_font = $mw->fontCreate('code', -family => 'courier',
                             -size => 12);

Once we have created our new font, you can refer to the font by the variable $code_font or by the name, 'code':

$mw->Button(-text => "Show Code", -font => 'code');
$mw->Button(-text => "Show Code2", -font => $code_font);

It is much simpler to specify all the desired font options once and refer to them using the name or variable later in the program. If you don’t want to use a name for the font, don’t specify it; the system will generate a name for you automatically.

$code_font = $mw->fontCreate(-family => 'courier',
                             -size => 12);

Once the font is created, you can change any of its settings using the fontConfigure method, using the font name or reference as the first argument:

$mw->fontConfigure($code_font, -family => 'Verdana');

The changes will take effect immediately on any widgets using that font, making it very useful for on-the-fly changes.

The -font option will also accept an anonymous array containing the right parts, with or without the identifiers:

-font => ['courier', '14', 'bold']
# The same thing, but more verbose:
-font => [-family => 'courier',
          -size => '14',
          -weight => 'bold']

The second way is much more verbose, and easier ...

Get Mastering Perl/Tk now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.