diff options
| author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-18 03:08:08 -0600 |
|---|---|---|
| committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-18 03:08:08 -0600 |
| commit | bcc95cd92ca12c1783464b8ada6816d430dc0e98 (patch) | |
| tree | 4701c447365db5392df0174b4bb00b5b5c369da4 /PerlQt/tutorials/t8/CannonField.pm | |
| download | libtqt-perl-bcc95cd92ca12c1783464b8ada6816d430dc0e98.tar.gz libtqt-perl-bcc95cd92ca12c1783464b8ada6816d430dc0e98.zip | |
Initial import of libqt-perl (not yet TQt compatible)
Diffstat (limited to 'PerlQt/tutorials/t8/CannonField.pm')
| -rw-r--r-- | PerlQt/tutorials/t8/CannonField.pm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/PerlQt/tutorials/t8/CannonField.pm b/PerlQt/tutorials/t8/CannonField.pm new file mode 100644 index 0000000..28e4986 --- /dev/null +++ b/PerlQt/tutorials/t8/CannonField.pm @@ -0,0 +1,43 @@ +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 $s = "Angle = " . ang; + my $p = Qt::Painter(this); + $p->drawText(200, 200, $s); +} + +sub sizePolicy { + Qt::SizePolicy(&Qt::SizePolicy::Expanding, &Qt::SizePolicy::Expanding); +} + +1; |
