Re: [pymecavideo] Re: matplotlib

[ Thread Index | Date Index | More lists.tuxfamily.org/pymecavideo Archives ]



Bonjour,

Cependant le module matplotlib a quelques faiblesses : il supporte mal
l'usage de threads, ce qui fait que la fenêtre pour le tracé du
graphique réagit mal quand on la ferme : impossible de la faire
réapparaître plus tard (sous Linux).
Effectivement, j'ai constaté ça sous windows ... est-ce bien utile
un thread ici ?
Oui. L'idée majeure, comme l'a expliqué Jean-Baptiste, c'est de laisser
le paquet pymecavideo le plus petit possible. S'il ne pouvait dépendre
directement que de QT4 et opencv, ce serait très bien.
??? Je crois que j'ai besoin d'explications ... en quoi un thread réduirait le paquet ?
Une autre faiblesse connue de matplotlib est dûe à son utilisation de
Tcl. Tcl ne sait pas utiliser l'encodage UTF-8, et c'est pas demain la
veille. Donc ça fait une partie du logiciel qui ne passerait pas dans
tous les pays.
Je pense que si on utilise le backend QT4 on n'a plus ce problème, non ?
Je viens de commiter ça (rev 245)
Non, pas d'accord. Le widget créé par matplotlib ne repose pas sur QT4
mais sur Tcl-Tk.

Pour ce qui est de la révision 245 : elle casse tout sous Linux, j'ai
une avalanche d'erreurs visibles dans la console, avec répétition de la
ligne « QPixmap: It is not safe to use pixmaps outside the GUI thread »
et finalement un crash : «<unknown>: Fatal IO error 11 (Ressource
temporairement non disponible) on X server :0.0. »
Le changement vient de mpl.py ou pymecavideo.py ?
Le changement vient de mpl.py : j'ai ajouté la ligne "matplotlib.use('Qt4Agg')", ce qui signifie que Matplotlib place le graphique dans une fenêtre QT4, et que tous les boutons sont aussi du QT4. Mais si tu vas voir dans pymecavideo.py vers la ligne 1378, j'ai désactivé l'utilisation de thread pour windows ... et ça marche impeccable : on peut ouvrir et fermer autant de fois que l'on veut les fenêtres Matplotlib !

Sauf erreur, le problème était : exporter des graphiques à la volée. Y
a-t-il sous Windows, une application libre légère capable de reprendre
efficacement une série de données pour en former un graphique ? Si la
réponse est : faire une appliquette basée sur matplotlib, alors comme
matplotlib n'est pas utilisable dans des threads, il faut le lancer
plutôt comme un processus fils détaché, avec son propre espace de donnée
séparé.

Qu'est-ce que tu entends par "appliquette" ?

Cédrick






Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/