1) Original C++ Program is in multiple inheritance. But as you know, Ruby does not allow multiple inheritance. So I plan to implement one class of the original 2 super classes as Module.
2) Original C++ Program doesn't call QPainter#begin method explicitly. So Ruby's one calls it explicitly.
3) I considered about failure of what-a-simple code Qt::MouseEvent.new(event). It seems there has been no failure point. But I must call constructor with each element like below:
Qt::MouseEvent.new(event.type, event.pos, event.button, event.buttons, event.modifiers)
Full code is here and execution result is below: