python-3.x - 为什么 GUI 卡住并且后台进程运行完美?
问题描述
我写了一个这样的程序:
cap = cv2.VideoCapture(video_path)
counter = 1
while True:
ret, frame = cap.read()
if not ret: break
cv2.imwrite(...)
self.progressbar.setValue(int((counter / self.totalFrame)*100))
time.sleep(1)
counter += 1
self.progressbar.setValue(0)
cap.release()
我想使用 opencv 从视频中提取所有帧,并希望在 PyQt5 进度条中显示进度。我还使用 sleep 来避免 Not Responding。但是程序显示我没有响应,进度条也被后台工作卡住了。
如何正确显示进度条的进度?
self.totalFrame 是视频的帧数。
解决方案
尝试用 cv2.waitKey(1) 替换 time.sleep(1)
推荐阅读
- ocaml - 从浮点数列表中获取第 n 个元素
- swift - 如何在字典中搜索一个值,然后删除包含该值的记录?
- c# - 列出隐藏值将错误的值传递给控制器
- java - 在字符串比较中使用 == 而不是 equals 不会被 Sonar 捕获
- latex - 将多个回归输出到 LaTeX 文档中
- java - 如何使用 Spark 更改所有数据集中的非数值?
- javascript - Express – 从外部 URL 下载文件
- java - 如何在activiti7的用户任务中获取表单属性?
- java - 在 anchorPane 中调整图形元素(网格窗格)的大小
- javascript - React Native,onPress 将文本值设置为状态