You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5/PyQt6应用show()方法加载耗时5秒问题求助

PyQt5/QWidget show()方法加载耗时5秒的排查与解决

最近一周,我的PyQt5应用加载突然变得很慢,哪怕是最基础的示例程序也要耗时5秒,问题集中在show()方法上,之前加载都是即时完成的。

基础示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.show()
sys.exit(app.exec_())

通过cProfile分析,结果显示show()方法占用了全部5秒耗时:

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    5.063    5.063    5.063    5.063 {built-in method show}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

我做了两组测试验证:

  • 搭配QTimer.singleShot调用show():
    1    5.057    5.057    5.057    5.057 {built-in method show} 
    1    0.000    0.000    0.000    0.000 {singleShot}
    
  • 调用两次show()方法:
    2 5.063 2.532 5.063 2.532 {built-in method show}
    

从结果能看出,不管部件数量多少,总耗时始终固定为5秒。

运行环境

  • Windows 11
  • Python 3.10.11
  • PyQt5 5.15.10

已尝试重装PyQt5、在虚拟环境运行,问题依然存在;换成PyQt6也有同样问题,且在VSCode和CMD中运行结果一致。

排查方向与解决建议

  • 检查显卡驱动:Qt依赖系统图形渲染组件,若最近有驱动更新或异常,可能导致渲染初始化卡顿。尝试回滚或重新安装厂商官方显卡驱动,避免使用Windows自动更新的版本。
  • 禁用Qt硬件加速:如果是硬件加速兼容性问题,可在初始化QApplication前强制禁用:
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtCore import Qt
    
    QApplication.setAttribute(Qt.AA_DisableHardwareAcceleration)
    app = QApplication(sys.argv)
    window = QWidget()
    window.show()
    sys.exit(app.exec_())
    
  • 排查安全软件拦截:部分防火墙或安全软件可能拦截Qt图形组件的初始化请求,导致5秒超时。临时关闭安全软件测试是否恢复正常。
  • 检查Windows系统更新:最近的系统更新可能引入兼容性问题,查看更新记录并尝试卸载近期安装的更新。
  • 测试原生Qt程序:运行非Python的Qt原生应用(如Qt Creator自带示例),若同样卡顿,说明问题出在系统层面而非PyQt本身。

内容的提问来源于stack exchange,提问作者glikoliz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:01:17