Class: CircleWidget
- Inherits:
-
Qt::Widget
show all
- Defined in:
- ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb
Instance Method Summary
collapse
Methods inherited from Qt::Widget
#raise
Methods inherited from Qt::Base
#%, #&, #*, #**, #+, #-, #-@, #/, #<, #<<, #<=, #==, #>, #>=, #>>, #QCOMPARE, #QEXPECT_FAIL, #QFAIL, #QSKIP, #QTEST, #QVERIFY, #QVERIFY2, #QWARN, #^, ancestors, #is_a?, #methods, private_slots, #protected_methods, #public_methods, q_classinfo, q_signal, q_slot, signals, #singleton_methods, slots, #|, #~
Constructor Details
#initialize(parent = nil) ⇒ CircleWidget
Returns a new instance of CircleWidget.
31
32
33
34
35
36
37
38
39
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 31
def initialize(parent = nil)
super(parent)
@floatBased = false
@antialiased = false
@frameNo = 0
setBackgroundRole(Qt::Palette::Base)
setSizePolicy(Qt::SizePolicy::Expanding, Qt::SizePolicy::Expanding)
end
|
Instance Method Details
#antialiased=(antialiased) ⇒ Object
46
47
48
49
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 46
def antialiased=(antialiased)
@antialiased = antialiased
update()
end
|
#floatBased=(floatBased) ⇒ Object
41
42
43
44
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 41
def floatBased=(floatBased)
@floatBased = floatBased
update()
end
|
#minimumSizeHint ⇒ Object
51
52
53
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 51
def minimumSizeHint()
return Qt::Size.new(50, 50)
end
|
#nextAnimationFrame ⇒ Object
59
60
61
62
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 59
def nextAnimationFrame()
@frameNo += 1
update()
end
|
#paintEvent(event) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 64
def paintEvent(event)
painter = Qt::Painter.new(self)
painter.setRenderHint(Qt::Painter::Antialiasing, @antialiased)
painter.translate(width() / 2, height() / 2)
diameter = 0
while diameter < 256
delta = ((@frameNo % 128) - diameter / 2).abs
alpha = 255 - (delta * delta) / 4 - diameter
if alpha > 0
painter.pen = Qt::Pen.new(Qt::Brush.new(Qt::Color.new(0, diameter / 2, 127, alpha)), 3)
if @floatBased
painter.drawEllipse(Qt::RectF.new(-diameter / 2.0, -diameter / 2.0,
diameter, diameter))
else
painter.drawEllipse(Qt::Rect.new(-diameter / 2, -diameter / 2,
diameter, diameter))
end
end
diameter += 9
end
painter.end
end
|
55
56
57
|
# File 'ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb', line 55
def sizeHint()
return Qt::Size.new(180, 180)
end
|