Class: WigglyWidget
- Inherits:
-
Qt::Widget
- Object
- Qt::Base
- Qt::Widget
- WigglyWidget
- Defined in:
- ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb
Overview
** ** Copyright © 2005-2005 Trolltech AS. All rights reserved. ** ** This file is part of the example classes of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** self file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** www.trolltech.com/products/qt/licensing.html or contact the ** sales department at [email protected]. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. **
** Translated to QtRuby by Richard Dale
Instance Method Summary collapse
-
#initialize(parent = nil) ⇒ WigglyWidget
constructor
A new instance of WigglyWidget.
- #paintEvent(event) ⇒ Object
- #setText(newText) ⇒ Object
- #timerEvent(event) ⇒ Object
Methods inherited from Qt::Widget
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) ⇒ WigglyWidget
Returns a new instance of WigglyWidget.
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb', line 30 def initialize(parent = nil) super(parent) setBackgroundRole(Qt::Palette::Midlight) newFont = font() newFont.pointSize += 20 setFont(newFont) @step = 0 @timer = Qt::BasicTimer.new @timer.start(60, self) end |
Instance Method Details
#paintEvent(event) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb', line 47 def paintEvent(event) sineTable = [ 0, 38, 71, 92, 100, 92, 71, 38, 0, -38, -71, -92, -100, -92, -71, -38 ] metrics = Qt::FontMetrics.new(font()) x = (width() - metrics.width(@text)) / 2 y = (height() + metrics.ascent() - metrics.descent()) / 2 color = Qt::Color.new painter = Qt::Painter.new(self) (0...@text.size).each do |i| index = (@step + i) % 16 color.setHsv((15 - index) * 16, 255, 191) painter.pen = color painter.drawText(x, y - ((sineTable[index] * metrics.height()) / 400), @text[i, 1]) x += metrics.width(@text[i, 1]) end painter.end end |
#setText(newText) ⇒ Object
43 44 45 |
# File 'ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb', line 43 def setText(newText) @text = newText end |
#timerEvent(event) ⇒ Object
68 69 70 71 72 73 74 75 |
# File 'ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb', line 68 def timerEvent(event) if event.timerId == @timer.timerId @step += 1 update() else super(event) end end |