PyQt结合AsyncIOScheduler调度任务触发TypeError问题求助
问题排查与解决
错误原因
Qt的QObject.startTimer()方法要求第一个参数必须是整数类型的毫秒数,而你当前传入的是浮点数(比如3000.0),因此触发了TypeError。
解决步骤
- 检查Schedule按钮触发的代码逻辑,找到调用
startTimer的位置,确保传入的毫秒数是整数类型。 - 如果是通过时间间隔(如3秒)计算毫秒数,需将结果转为整数,避免浮点数传入:
# 错误写法(会得到float类型的3000.0) # self.startTimer(3.0 * 1000) # 正确写法1:强制转为整数 self.startTimer(int(3.0 * 1000)) # 正确写法2:直接传入整数毫秒数 self.startTimer(3000) - 若AsyncIOScheduler与Qt定时器交互时涉及间隔传递,确保将调度间隔转换为Qt定时器参数时做整数转换,避免传递浮点数。
验证
修改后点击Schedule按钮,调度任务应每3秒正常触发并输出Tick! The time is: [时间],不再出现类型错误。
内容的提问来源于stack exchange,提问作者shearerm
相关产品推荐
相关产品推荐

