File: cannon.rb

package info (click to toggle)
qtruby 4%3A4.8.4-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,564 kB
  • sloc: ruby: 24,603; cpp: 23,004; makefile: 63; sh: 8
file content (38 lines) | stat: -rw-r--r-- 737 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require 'Qt4'

class CannonField < Qt::Widget
	signals 'angleChanged(int)'
	slots 'setAngle(int)'
	
	def initialize(parent = nil)
		super
		@currentAngle = 45
    	setPalette( Qt::Palette.new( Qt::Color.new( 250, 250, 200) ) )
		setAutoFillBackground(true)
	end

	def setAngle( degrees )
		if degrees < 5
			degrees = 5
		elsif degrees > 70
        	degrees = 70
		end
		if @currentAngle == degrees
			return
		end
		@currentAngle = degrees
		repaint()
		emit angleChanged( @currentAngle )
	end

	def paintEvent( event )
		p = Qt::Painter.new( self )
		p.drawText( 200, 200, "Angle = %d" % @currentAngle )
		p.end()
	end


	def sizePolicy()
    	return Qt::SizePolicy.new( Qt::SizePolicy::Expanding, Qt::SizePolicy::Expanding )
	end
end