イーベントでTimerしてみる?

     今回はQtの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_())
    
    で、こんな感じになります。
    timerEvent001.jpg


    続きを読む

    スポンサーサイト
    プロフィール

    Eske

    Author:Eske
    萌えイラストレーターを目指す3DCGイラストレーター。
    現在ポケモンカードゲーム、ガンダムトライエイジ、ガンダムコンクエスト、妖怪ウォッチとりつきカードゲームなどで3DCGを使用したイラストレーターとして参加中。

    主にここでは日々気づいたメモなんかを残してます。
    イラストのお仕事も受け付けております。ココのメールアドレスからご連絡できますので、お気軽にご相談下さい。

    最新記事
    最新コメント
    カテゴリ
    最新トラックバック
    月別アーカイブ
    検索フォーム
    リンク
    QRコード
    QR