【问题标题】:PyQt: splash screen while loading "heavy" librariesPyQt:加载“重”库时的启动画面
【发布时间】:2010-10-26 22:35:54
【问题描述】:

我使用matplotlib 的 PyQt 应用程序第一次加载需要几秒钟,即使在快速机器上也是如此(第二次加载时间要短得多,因为 Windows 将 DLL 保存在内存中)。

我想知道在加载 matplotlib 库时显示启动屏幕是否可行。实际加载发生在哪里 - 是在执行 from 行时?如果是这样,我怎样才能让这一行在启动画面期间执行,并且仍然能够在整个代码中使用该模块?

一个相关的难题是如何测试它 - 我可以要求 Windows 为每次执行加载 DLL 而不是缓存它们吗?

【问题讨论】:

    标签: python performance matplotlib pyqt


    【解决方案1】:

    是的,加载模块发生在 import 语句所在的行。如果您创建了QApplication 并在此之前显示您的启动画面,您应该能够做您想做的事情——您还需要在需要启动屏幕更新新消息时调用QApplication.processEvents()

    【讨论】:

    • 但是我怎样才能使导入对顶级代码可见?为了在闪屏后延迟导入,我应该在方法/函数中执行它们 - 这会导致可见性问题
    • @eliben:您应该在函数/方法中首次导入“重”模块。然后下次导入时(从其他模块的顶层),它们不会被加载,只是在 sys.modules 中查找,这非常快。
    • 导入ui文件怎么办,不能正常使用
    猜你喜欢
    • 2015-01-11
    • 1970-01-01
    • 2016-04-22
    • 2019-02-11
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    相关资源
    最近更新 更多