イーベントでTimerしてみる?
今回はQtのtimerEventのメモ。
QtのQObjectにはtimerEventメソッドがあり、これをオーバーライドする事で時間にそって何らかな作業を行う事ができます。
とりあえずサンプルコード
QtのQObjectにはtimerEventメソッドがあり、これをオーバーライドする事で時間にそって何らかな作業を行う事ができます。
とりあえずサンプルコード
# -*- coding:utf-8 -*- import datetime from PyQt4 import QtGui, QtCore class TimerWidget(QtGui.QWidget): def __init__(self, parent=None): super(TimerWidget, self).__init__(parent) # Tree Viewを作成。---------------------------------------------------- model = QtGui.QStandardItemModel(0, 0) self.view = QtGui.QTreeView() self.view.setModel(model) # --------------------------------------------------------------------- layout = QtGui.QVBoxLayout(self) layout.addWidget(self.view) self.timerId = self.startTimer(1000) # TimerEventをスタート def timerEvent(self, event): ''' オーバーライド用のtimerEventメソッド。 ここに処理を記述する。 ''' if event.timerId() == self.timerId: # 引数eventのタイマーIDが先に行ったself.timerIdと一致している場合 # アイテムを追加する。 model = self.view.model() item = QtGui.QStandardItem( datetime.datetime.now().strftime('%Y/%m/%d, %H:%M:%S') ) model.setItem(model.rowCount(), 0, item) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) win = TimerWidget() win.show() sys.exit(app.exec_())で、こんな感じになります。

スポンサーサイト