PyQt: écran de démarrage pendant le chargement des bibliothèques « lourds »
-
22-08-2019 - |
Question
Mon application PyQt qui utilise matplotlib
prend plusieurs secondes pour charger pour la première fois, même sur une machine rapide (la deuxième fois de la charge est beaucoup plus courte que les DLL sont conservées en mémoire par Windows).
Je me demande s'il est possible d'afficher un écran d'accueil tandis que la bibliothèque de matplotlib
est en cours de chargement. Où aura lieu le chargement réel ne - est-il lorsque la ligne de from
est exécutée? Si oui, comment puis-je faire cette ligne exécuter pendant l'écran de démarrage et toujours être en mesure d'utiliser le module à travers le code?
Un dilemme lié est de savoir comment tester cette - puis-je demander à Windows de charger les DLL pour chaque exécution et ne pas les mettre en cache
La solution
Oui, le chargement du module se déroule à la ligne où la déclaration d'importation est. Si vous créez votre QApplication
et montrez votre écran de démarrage avant cela, vous devriez être en mesure de faire ce que vous voulez - aussi vous devez appeler QApplication.processEvents()
chaque fois que vous avez besoin de l'écran de démarrage pour mettre à jour avec un nouveau message