From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!/usr/bin/perl -w
use Qt;
use QColor;
use QFrame;
use QLabel;
use QLayout;
$f = new QGroupBox;
$f->setFrameStyle($Frame{Panel} | $Frame{Sunken});
$gm = new QBoxLayout($f, $Direction{BottomToTop}, 5);
$b1 = new QBoxLayout($Direction{RightToLeft});
$gm->addLayout($b1, 10);
for(my $i = 0; $i < 4; $i++) {
my $lab = new QLabel($f)->setImmortal;
$lab->setText("Test $i");
$lab->adjustSize();
$lab->setMinimumSize($lab->size());
$lab->setFrameStyle($Frame{Panel} | $Frame{Plain});
$lab->setAlignment($Align{Top} | $Align{HCenter});
$lab->setBackgroundColor($yellow);
$lab->setMaximumSize(150, 200);
$b1->addWidget($lab, 20);
}
$qb = new QPushButton('Quit', $f);
$qApp->connect($qb, 'clicked()', 'quit()');
$qb->setFixedSize($qb->size());
$b1->addWidget($qb, 0, $Align{Top});
$large = new QLabel($f);
$large->setText("This is supposed to be a large window\n you know.");
$large->adjustSize();
$large->setMinimumSize($large->size());
$large->setFrameStyle($Frame{Panel} | $Frame{Plain});
$large->setAlignment($Align{Center});
$large->setBackgroundColor($white);
$b2 = new QBoxLayout($Direction{LeftToRight});
$gm->addLayout($b2, 50);
$b2->addWidget($large, 100);
{
my $s = new QLabel($f)->setImmortal;
$s->setMaximumSize(150, 150);
$s->setText("This\n is\n supposed\n to be\n centered\n relatively.");
$s->adjustSize();
$s->setMinimumSize($s->size());
$s->setFrameStyle($Frame{Panel} | $Frame{Plain});
$s->setAlignment($Align{Center});
$s->setBackgroundColor($cyan);
$b2->addWidget($s, 10, $Align{Center});
}
{
my $s = new QLabel($f)->setImmortal;
$s->setMaximumSize($QLayout::unlimited, 50);
$s->setText('This is a widget inside the outermost box');
$s->adjustSize();
$s->setMinimumSize($s->width(), $s->height());
$s->setFrameStyle($Frame{Panel} | $Frame{Plain});
$s->setAlignment($Align{Center});
$s->setBackgroundColor($red);
$gm->addWidget($s, 1);
}
$gm->activate();
$f->show();
$qApp->setMainWidget($f);
$qApp->exec();