LCD-Display mit Tk::LCD

Eine Anzeige, die so aussieht wie ein LCD-Display, kann mittels Tk::LCD erstellt werden. Das nachstehende Programm basiert auf einem Beispiels aus der Tk::LCD-Distribution.

#!perl

use strict;
use warnings;
use Tk;
use Tk::LCD;
use Tk::Radiobutton;

my $mw = MainWindow->new;

# -- LCD-Anzeige und Info
my $lcd_frame = $mw->Frame->pack(-side => 'right');

my $frog = 42;
my $lcd = $lcd_frame->LCD(
	-elements => 11,
	-variable => \$frog,
)->pack;

$lcd->configure(
    -elements   => 15,
    -background => 'white',
    -onoutline  => 'blue',
    -onfill     => 'blue',
    -offoutline => 'white',
    -offfill    => 'white',
    -size       => 'small',
);


# -- Buttons zum Umschalten der Anzeige
my $options_frame = $mw->Frame->pack(-side => 'left');
my %variants = (
	'Large Numbers' => -1234567890,
	'Small Numbers, Commified' => 1_234_567_890.31415,
	'Small Numbers, Not Commified' => 2003,
);
my $selected = (sort keys(%variants))[0];
foreach my $variant ( sort keys %variants ) {
	$options_frame->Radiobutton(
		-text => $variant,
		-value => $variant,
		-variable => \$selected,
		-indicatoron => 0,
		-command => sub{
			update_lcd($mw, $lcd, $variants{$variant});
		},
	)->pack(-fill => 'x');
}
update_lcd($mw, $lcd, $variants{$selected});

$mw->MainLoop;
exit(0);

sub update_lcd {
	my ($top, $lcd_widget, $value) = @_;
	$lcd_widget->set($value);
	$top->update;
}
Top