From bcc95cd92ca12c1783464b8ada6816d430dc0e98 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 18 Dec 2011 03:08:08 -0600 Subject: Initial import of libqt-perl (not yet TQt compatible) --- PerlQt/tutorials/t9/CannonField.pm | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 PerlQt/tutorials/t9/CannonField.pm (limited to 'PerlQt/tutorials/t9/CannonField.pm') diff --git a/PerlQt/tutorials/t9/CannonField.pm b/PerlQt/tutorials/t9/CannonField.pm new file mode 100644 index 0000000..e12489a --- /dev/null +++ b/PerlQt/tutorials/t9/CannonField.pm @@ -0,0 +1,48 @@ +package CannonField; +use strict; +use Qt; +use Qt::isa qw(Qt::Widget); +use Qt::signals + angleChanged => ['int']; +use Qt::slots + setAngle => ['int']; +use Qt::attributes qw( + ang +); +use POSIX qw(atan); + +sub angle () { ang } + +sub NEW { + shift->SUPER::NEW(@_); + + ang = 45; + setPalette(Qt::Palette(Qt::Color(250, 250, 200))); +} + +sub setAngle { + my $degrees = shift; + $degrees = 5 if $degrees < 5; + $degrees = 70 if $degrees > 70; + return if ang == $degrees; + ang = $degrees; + repaint(); + emit angleChanged(ang); +} + +sub paintEvent { + my $p = Qt::Painter(this); + $p->setBrush(&blue); + $p->setPen(&NoPen); + + $p->translate(0, rect()->bottom); + $p->drawPie(Qt::Rect(-35, -35, 70, 70), 0, 90*16); + $p->rotate(- ang); + $p->drawRect(Qt::Rect(33, -4, 15, 8)); +} + +sub sizePolicy { + Qt::SizePolicy(&Qt::SizePolicy::Expanding, &Qt::SizePolicy::Expanding); +} + +1; -- cgit v1.2.3