在终端中使用time.sleep()函数时,没有问题。 当我使用PyQt并希望使用标签时,它会崩溃和/或只显示最后一个数字
顺便说一句:我想要一个功能,可以计算从2020年到2030年的不同速度的年份,用户可以更改,年份应该显示在标签上
非常感谢你的帮助
# timer that counts in the future with various speed // still crashing
def timer(self):
x=datetime.datetime.now()
z=x.ctime()
self.ui.labelDateTime.setText(z)
var=x.year
while True:
if var==2030:
break
else:
var+=1
y=x.replace(year=var)
z=y.ctime()
self.ui.labelDateTime.setText(z)
time.sleep(0.5)
print("You are dead")
您应该在for循环中调用
QtCore.QCoreApplication.processEvents()
,使Qt的事件循环继续传入事件(从键盘、鼠标或睡眠)尽管调用
QtCore.QCoreApplication.processEvents()
是可行的,但我在网上的许多地方都看到,这应该是最后的选择。不幸的是,没有一个来源清楚地解释了原因,但请参见示例因此,这似乎是允许的,但总的来说,使用
QTimer
或QThread
似乎是更好的设计相关问题 更多 >
编程相关推荐