PyQT5 Progress Bar 出现卡死

PyQT5的Progress Bar在未正确使用线程和主线程操作时会出现卡死现象。两种常见原因是:1) 未为Progress Bar开辟线程,导致界面在执行任务时被锁定;2) 将对Progress Bar的操作放在非主线程中执行。解决办法包括创建线程执行任务并使用信号槽机制,确保界面更新在主线程中进行。
摘要由CSDN通过智能技术生成

在 PyQT5 中,存在 Progress Bar 这个控件,它的作用是显示当前任务的百分比。

对于这样一个控件,最合适的使用场景就是拿来当计时器,或者下载进度条之类。

有两种典型的 Progress Bar 卡死原因:

1. 没有为 Progress Bar 开辟线程

2. 没有将对 Progress Bar 的操作移到主线程进行

 

1. 没有为 Progress Bar 开辟线程

以用作计时器为例,需要为 Progress Bar 的任务开一个线程,以避免在计时期间,界面无法进行任何操作。如果在主界面里计时10s,那么在这10s内,界面就会处在类似于锁定的状态,只有当10s计时结束,才能进行别的操作。

如下面这段代码所示,通过操作线程 t 的 pause, resume,来实现对 countDownSingal 的操作,而不是直接把 countDownSingal 放在主线程中操作。

    de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值