class CircleWidget
Public Class Methods
new(parent = nil)
click to toggle source
Calls superclass method
# File 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
Public Instance Methods
antialiased=(antialiased)
click to toggle source
# File examples/painting/concentriccircles/circlewidget.rb, line 46 def antialiased=(antialiased) @antialiased = antialiased update() end
floatBased=(floatBased)
click to toggle source
# File examples/painting/concentriccircles/circlewidget.rb, line 41 def floatBased=(floatBased) @floatBased = floatBased update() end
minimumSizeHint()
click to toggle source
# File examples/painting/concentriccircles/circlewidget.rb, line 51 def minimumSizeHint() return Qt::Size.new(50, 50) end
nextAnimationFrame()
click to toggle source
# File examples/painting/concentriccircles/circlewidget.rb, line 59 def nextAnimationFrame() @frameNo += 1 update() end
paintEvent(event)
click to toggle source
# File 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
sizeHint()
click to toggle source
# File examples/painting/concentriccircles/circlewidget.rb, line 55 def sizeHint() return Qt::Size.new(180, 180) end