Eureka!
The trick is in the path. LabFrame does not have a .font property, but its subwidget of Label does:
use warnings;
use strict;
use Tk;
my $mw = MainWindow->new();
$mw->geometry('200x200');
$mw->optionAdd('*font', 'helvr12');
$mw->optionAdd('*LabFrame.label.font', 'helvb12');
my $lab_frm = $mw->LabFrame(-label => 'LabFrame Test')->pack;
$lab_frm->Label(-text => 'Label Test')->pack;
print STDERR $lab_frm->Subwidget('label')->PathName, "\n";
MainLoop;
Update: Another interesting finding. This does not work with LabEntry because, from what I can tell, it does not advertise its Label subwidget. This can, however, be worked around by changing both subwidgets, then reverting Entry:
$mw->optionAdd('*LabEntry*font', 'helvb12');
$mw->optionAdd('*LabEntry.entry.font', 'helvr12');
|