require 'Qt' #### TODO ### # dup of qobject crash def bug1 p1 = Qt::Point.new(5,5) p1.setX 5 p p1 p3 = p1.dup p3.setX 5 p p3 end #bug1 #### FIXED ### def bug3 a = Qt::Application.new(ARGV) @file = Qt::PopupMenu.new @file.insertSeparator Qt::debug_level = Qt::DebugLevel::High p $qApp @file.insertItem("Quit", $qApp, SLOT('quit()')) @file.exec end #bug3 class CPUWaster < Qt::Widget def initialize(*k) super(*k) end def draw painter = Qt::Painter.new(self) 0.upto(1000) { |i| cw, ch = width, height c = Qt::Color.new(rand(255), rand(255), rand(255)) x = rand(cw - 8) y = rand(cw - 8) w = rand(cw - x) h = rand(cw - y) brush = Qt::Brush.new(c) brush.setStyle(Qt::Dense6Pattern) Qt::debug_level = Qt::DebugLevel::High painter.fillRect(Qt::Rect.new(x, y, w, h), brush) Qt::debug_level = Qt::DebugLevel::Off } end end def bug4 Qt::Application.new(ARGV) w = CPUWaster.new w.show w.draw end bug4