2012-02-20 9 views
0
for i in range(len(trgx)): 
    qp.begin(self) 
    brush = QtGui.QBrush(QtCore.Qt.red,QtCore.Qt.SolidPattern) 
    qp.setBrush(brush) 
    qp.drawRect(trgx[i],trgy[i],cd,rd) 
    qp.end() 
    time.sleep(.4) 

上記のコードはpaintEventの一部であるが、ここでの問題は、絵が矩形で矩形を発生しないということであるが、代わりに、すなわち、スリープ(0.4)を終了する全体の睡眠を待ちますlen(trgx)し、すべての矩形を一緒に印刷します。これを修正するにはどうすればよいですか?PyQt4描画と睡眠

答えて

1

paintEventを一時停止したり、同時に画面を更新することはできないと思います。

可能な方法は、描画する矩形の数を渡してから一時停止するpaintEventを呼び出すメソッドを作成することです。

おそらくより良い方法は、このようなコード(擬似コード)でQTimerを使用することである。

timer = QTimer() 
connect(timer, SIGNAL(timeout()), this, SLOT(update())) 
timer.start(1000) 

update()スロットは、それらを描画し、描画する矩形の数を計算します。すべての長方形が描画されたら、timer.stop()メソッドを呼び出してタイマーを停止します。

関連する問題