1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#!/usr/bin/env ruby -w
# This is the EventFilter example from Chapter 16 of 'Programming with Qt'
require 'Qt4'
class KillerFilter < Qt::Object
def eventFilter( object, event )
if event.type() == Qt::Event::MouseButtonPress
if event.button() == Qt::RightButton
object.close()
return true
else
return false
end
else
return false
end
end
end
a = Qt::Application.new(ARGV)
toplevel = Qt::Widget.new
toplevel.resize(230, 130)
killerfilter = KillerFilter.new
pb = Qt::PushButton.new(toplevel)
pb.setGeometry( 10, 10, 100, 50 )
pb.text = "pushbutton"
pb.installEventFilter(killerfilter)
le = Qt::LineEdit.new(toplevel)
le.setGeometry( 10, 70, 100, 50 )
le.text = "Line edit"
le.installEventFilter(killerfilter)
cb = Qt::CheckBox.new(toplevel)
cb.setGeometry( 120, 10, 100, 50 )
cb.text = "Check-box"
cb.installEventFilter(killerfilter)
rb = Qt::RadioButton.new(toplevel)
rb.setGeometry( 120, 70, 100, 50 )
rb.text = "Radio button"
rb.installEventFilter(killerfilter)
toplevel.show
a.exec
|