RubyQtでカスタム時計ウィジェットを作成しようとしていますgem install qtbindings
。時計は毎秒現在の時刻で更新されます。そうではなく、コードは完璧に見えますが、なぜこれが機能しないのですか?
require "Qt4"
class ClockLabel < Qt::Label
attr_accessor :timer
def initialize(date_format = '%Y-%d-%mT%H:%M:%S')
super()
@date_format = date_format
self.set_text(Time.now.strftime date_format)
end
def paint_event(event)
super(event)
painter = Qt::Painter.new(self)
painter.draw_text(event.rect.x, event.rect.y, Time.now.strftime(@date_format))
end
def start
@timer = Qt::Timer.new(self)
self.connect(@timer, SIGNAL('timeout()'), self, SLOT('update()'))
@timer.start(1000)
end
end
if __FILE__ == $PROGRAM_NAME
app = Qt::Application.new([])
clock = ClockLabel.new()
clock.start
clock.show
app.exec()
end