#!/usr/bin/perl -w
package LCDRange;

use Qt 2.0;

@ISA = qw(Qt::VBox);

sub new {
    my $self = shift->SUPER::new(@_);

    my $lcd = Qt::LCDNumber->new(2, $self, 'lcd');
    my $slider = Qt::Slider->new(Qt::Horizontal, $self, 'slider');
    $slider->setRange(0, 99);
    $slider->setValue(0);
    $lcd->connect($slider, 'valueChanged(int)', 'display(int)');

    return $self;
}

package MyWidget;

use Qt 2.0;
import Qt::app;

@ISA = qw(Qt::VBox);

sub new {
    my $self = shift->SUPER::new(@_);

    my $quit = Qt::PushButton->new('Quit', $self, 'quit');
    $quit->setFont(Qt::Font->new('Times', 18, Qt::Font::Bold));

    $app->connect($quit, 'clicked()', 'quit()');

    my $grid = Qt::Grid->new(4, $self);

    for(my $c = 0; $c < 4; $c++) {
	for(my $r = 0; $r < 4; $r++) {
	    LCDRange->new($grid);
	}
    }

    return $self;
}

package main;

use Qt 2.0;
import Qt::app;

$w = MyWidget->new;
$app->setMainWidget($w);
$w->show();
exit $app->exec();
