pyqt timerの応用

3832 ワード

主な内容
主にPyQtプログラムの全体的なフレームワークを理解します;
関連モジュール:QAPplication,QLabel,QTimer  
実例説明
まず簡単なPyQtプログラムを見てみましょう.
1
2
3
4
5
6
7
8
9
10 import   sys from   PyQt4.QtGui  import   * from   PyQt4.QtCore  import   *
  app  =   QApplication(sys.argv) label  =   QLabel( "<font color=red size=128><b>Hello PyQT!</b></font>" ) label.setWindowFlags(Qt.SplashScreen) label.show() QTimer.singleShot( 10000 , app.quit)  # 10s app.exec_()
 まず導入内容を見ると,PyQtにおけるインタフェースに関するモジュールは一般的にQtGuiにあり,QtCoreには多くの基本コンポーネントが含まれている.
 アプリケーション全体のフレームワークは次のとおりです.app =   QApplication(sys.argv) #... app.exec_()
 途中で省略した部分は自分で実現したインタフェース部分で、上の小さな例では、小さなウィンドウが表示され、「Hello PyQT!」と表示され、次の行1行分析されます.
6行目では、htmlのような文法をサポートするQLabelを宣言しました.
7行目では、フレームがなく、ソフトウェア起動画面に一般的に使用されるウィンドウタイプをフラッシュスクリーンに設定します.この言葉を注釈すると、正常なウィンドウが表示されます.
8行目では、そのプロパティを表示に設定します.
9行目では、QTimerでタイミングを設定し、10 s後にプログラムを終了します.
 
簡単なまとめ:
 PyQtプログラム全体フレームワーク、QAPplication  QLabelラベルコンポーネント:表示内容 QTimerタイミングコンポーネント:時間スケジューリングタスクの完了
 
拡張知識:
QLabelはよく使われるコンポーネントで、次のプログラムはQLabelの使い方についてもっと提供しています.
主にモジュールに関連する:QFont,QpixMap,QFontMetric,Qpainter,QTextDocument, 
QLabelメソッド:
label.setPixmap(pixmap)
label.setMask(pixmap.createMaskFromColor(Qt.red))
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import   sys from   PyQt4.QtGui  import   * from   PyQt4.QtCore  import   *
  msg  =   "Hello PyQt!" app  =   QApplication(sys.argv) font  =   QFont( "Times New Rome" 36 , QFont.Bold) fm  =   QFontMetrics(font) pixmap  =   QPixmap(fm.width(msg)  +   5 , fm.height()  +   5 ) pixmap.fill(Qt.white) painter  =   QPainter(pixmap) document  =   QTextDocument() document.setDefaultFont(font) document.setHtml( "<font color=red>%s</font>"   %   msg) document.drawContents(painter) label  =   QLabel() label.setPixmap(pixmap) label.setMask(pixmap.createMaskFromColor(Qt.red)) #label.setWindowFlags(Qt.SplashScreen|Qt.FramelessWindowHint) label.show() QTimer.singleShot( 10000 , app.quit)  # 1 minute app.exec_()
 
 
from PyQt4 import QtCore, QtGui
 
def xxx():
def __init__(self):
        self.timer=QtCore.QTimer()
        QtCore.QObject.connect(self.timer,QtCore.SIGNAL("timeout()"), self.OnTimer)
        self.timer.start( 1000 )

def OnTimer(self):
        print 'Get Timer'