2012-02-20 2 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() 메서드를 호출하여 타이머를 중지하십시오.