diff options
Diffstat (limited to 'qtruby/rubylib/tutorial/t7')
-rw-r--r-- | qtruby/rubylib/tutorial/t7/lcdrange.rb | 25 | ||||
-rwxr-xr-x | qtruby/rubylib/tutorial/t7/t7.rb | 37 |
2 files changed, 62 insertions, 0 deletions
diff --git a/qtruby/rubylib/tutorial/t7/lcdrange.rb b/qtruby/rubylib/tutorial/t7/lcdrange.rb new file mode 100644 index 00000000..3df3c961 --- /dev/null +++ b/qtruby/rubylib/tutorial/t7/lcdrange.rb @@ -0,0 +1,25 @@ +#!/usr/bin/ruby -w +require 'Qt' + +class LCDRange < Qt::VBox + signals 'valueChanged(int)' + slots 'setValue(int)' + + def initialize(grid) + super + lcd = Qt::LCDNumber.new(2, self, 'lcd') + @slider = Qt::Slider.new(Qt::VBox::Horizontal, self, 'slider') + @slider.setRange(0, 99) + @slider.setValue(0) + connect(@slider, SIGNAL('valueChanged(int)'), lcd, SLOT('display(int)')) + connect(@slider, SIGNAL('valueChanged(int)'), SIGNAL('valueChanged(int)')) + end + + def value() + @slider.value() + end + + def setValue( value ) + @slider.setValue( value ) + end +end diff --git a/qtruby/rubylib/tutorial/t7/t7.rb b/qtruby/rubylib/tutorial/t7/t7.rb new file mode 100755 index 00000000..396953de --- /dev/null +++ b/qtruby/rubylib/tutorial/t7/t7.rb @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby +$VERBOSE = true; $:.unshift File.dirname($0) + +require 'Qt' +require 'lcdrange.rb' + +class MyWidget < Qt::VBox + +def initialize() + super + quit = Qt::PushButton.new('Quit', self, 'quit') + quit.setFont(Qt::Font.new('Times', 18, Qt::Font::Bold)) + + connect(quit, SIGNAL('clicked()'), $qApp, SLOT('quit()')) + grid = Qt::Grid.new( 4, self ) + + previous = nil + for c in 0..3 + for r in 0..3 + lr = LCDRange.new(grid) + if previous != nil + connect( lr, SIGNAL('valueChanged(int)'), + previous, SLOT('setValue(int)') ) + end + previous = lr + end + end +end + +end + +a = Qt::Application.new(ARGV) + +w = MyWidget.new +a.setMainWidget(w) +w.show +a.exec |