PyQt4绘图和睡眠

2024-06-28 20:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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的一部分,这里的问题是绘画不是一个接一个地出现,而是等待整个睡眠过程完成ie sleep(.4)*len(trgx),然后打印所有矩形一起。怎么我要纠正这个吗??在


Tags: inselfforlenrangesleepredqt
1条回答
网友
1楼 · 发布于 2024-06-28 20:20:49

我认为您不能暂停paintEvent并同时更新屏幕。在

要想做什么,一种可能的方法是创建一个方法,调用paintEvent传递要绘制的矩形数,然后暂停。在

可能更好的方法是使用QTimer,其代码如下(伪代码):

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

update()槽计算要绘制的矩形数并绘制它们。当所有的矩形都画好后,只需调用timer.stop()方法来停止计时器。在

相关问题 更多 >