当前位置:   article > 正文

关于python Qtimer的用法,多次启停计时器出现的问题_qtcore.qtimer()

qtcore.qtimer()
timer = QtCore.QTimer()
s = 0

def timer_start():
     timer.timeout.connect(get_zl)   # 计时器链接方法
     timer.start(1000)   # 计时间隔为1000ms

def timer_end():
    timer.stop()
	s = 0
	
def get_zl():
	s = s + 1
	print(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

``

我想通过一个按钮控制这个计时器,点击一下即为开始,再点击一下,即为停止,且将变量s清零。现在遇到了一个问题:
我首次点击开始,无问题
点击停止后再次点击开始,他的计时会多一个
再次点击停止,第3次点击开始时,计时又会多一个
****

例如我定义了一个变量s,利用计时器一秒打一个点,打印出来就是一秒加一。应为一次打印一个数字:
0,(间隔1 S)
1,(间隔1 S)
2,(间隔1 S)

可是在第二次点击开始计时后,会出现,一秒钟打印两次的情况:
0,
1,(间隔1 S)
2,
3,(间隔1 S)
4,
5,(间隔1 S)

停止后第三次去点击开始计时,会一秒钟打印三次:
0,
1,
2,
3,(间隔1 S)
4,
5,
6,(间隔1 S)
7,
8,
9,(间隔1 S)

不清楚是什么问题所导致的,有没有大佬康康

已解决

def timer_start():
     **timer.timeout.connect(get_zl)   # 计时器链接方法**
     timer.start(1000)   # 计时间隔为1000ms
  • 1
  • 2
  • 3

加黑这一行被重复调用所以出现这种问题
应放到外面去,每次只调用start

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/854072
推荐阅读
相关标签
  

闽ICP备14008679号