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