Les deux révisions précédentesRévision précédente | |
issue143:python [2019/04/11 11:14] – auntiee | issue143:python [2019/04/11 13:58] (Version actuelle) – andre_domenech |
---|
I will be using the latest version of Page (4.21) that was released on March 1, 2019 and can be downloaded from https://sourceforge.net/projects/page/ .** | I will be using the latest version of Page (4.21) that was released on March 1, 2019 and can be downloaded from https://sourceforge.net/projects/page/ .** |
| |
Maintenant, commençons. Pour utiliser le gadget pandastable, nous devons installer la bibliothèque. Cela peut être fait en utilisant pip au niveau du terminal. Comme nous utiliserons Python3 pour ce projet, nous utiliserons pip3. Si vous utilisez Python 2.x, utilisez « pip ». La commande est... | Maintenant, commençons. Pour utiliser le gadget pandastable, nous devons installer la bibliothèque. Cela peut être fait en utilisant pip au niveau du terminal. Comme nous utiliserons Python3 pour ce projet, nous utiliserons pip3. Si vous utilisez Python 2.x, utilisez « pip ». La commande est : |
| |
pip3 install pandastable | pip3 install pandastable |
| |
(Si, quand vous essayez de lancer le programme ci-dessous, vous recevez un message d'erreur disant quelque chose comme « from pandas.tools import plotting - ImportError: No module named tools » (de pandas.tools, suivi d'importation - Erreur d'importation : pas d'outils nommés du module), c'est probablement dû à la version de pandas que vous avez installé, qui serait la 0.19 ou moins. Essayez de mettre à jour votre bibliothèque pandas (pip3 install --upgrade pandas)). | (Si, quand vous essayez de lancer le programme ci-dessous, vous recevez un message d'erreur disant quelque chose comme « from pandas.tools import plotting - ImportError: No module named tools » (de pandas.tools, suivi d'importation - Erreur d'importation : pas d'outils nommés du module), c'est probablement dû à la version de pandas que vous avez installée, qui serait la 0.19 ou moins. Essayez de mettre à jour votre bibliothèque pandas (pip3 install --upgrade pandas)). |
| |
J'utiliserai la dernière version de Page (la 4.21) qui a été publiée le 1er mars 2019 et peut être téléchargée depuis https://sourceforge.net/projects/page/ . | J'utiliserai la dernière version de Page (la 4.21) qui a été publiée le 1er mars 2019 et peut être téléchargée depuis https://sourceforge.net/projects/page/ |
| |
**Now that we have pandastable and Page, we can go ahead and start designing the form . Start Page and move the new Topmost form to somewhere near the center of the screen. You can size it to any dimensions you wish, but I used 1004 for the width and 785 for the height for this demo. Set the title to "Pandastable Demo" in the Attribute Editor. | **Now that we have pandastable and Page, we can go ahead and start designing the form . Start Page and move the new Topmost form to somewhere near the center of the screen. You can size it to any dimensions you wish, but I used 1004 for the width and 785 for the height for this demo. Set the title to "Pandastable Demo" in the Attribute Editor. |
The second frame will be called "frameCustom", and will hold our custom widget (pandastable). I placed it a few pixels below the toolbar frame at X=2, Y=43, and set the width to 1000 and the height to 735.** | The second frame will be called "frameCustom", and will hold our custom widget (pandastable). I placed it a few pixels below the toolbar frame at X=2, Y=43, and set the width to 1000 and the height to 735.** |
| |
Maintenant que nous avons pandastable et Page, nous pouvons commencer la conception la forme [[https://www.fullcirclemag.fr/phpBB3/viewtopic.php?f=135&t=1431|FIXME]]. Démarrez Page et déplacez la forme la plus en haut quelque part vers le milieu de l'écran. Vous pouvez la redimensionner aux dimensions que vous souhaitez ; j'ai utilisé 1 004 pour la largeur et 785 pour la hauteur pour cette démonstration. Réglez le titre en « Démo Pandastable » dans l'éditeur d'attributs (Attribut Editor). | Maintenant que nous avons pandastable et Page, nous pouvons commencer la conception et la forme [[https://www.fullcirclemag.fr/phpBB3/viewtopic.php?f=135&t=1431|FIXME]]. Démarrez Page et déplacez la forme la plus en haut quelque part vers le milieu de l'écran. Vous pouvez la redimensionner aux dimensions que vous souhaitez ; j'ai utilisé 1 004 pour la largeur et 785 pour la hauteur pour cette démonstration. Réglez le titre en « Démo Pandastable » dans l'éditeur d'attributs (Attribut Editor). |
| |
Nous ajouterons deux cadres, un bouton Tk « standard » et un gadget Page personnalisé. C'est tout ce dont nous avons besoin. | Nous ajouterons deux cadres, un bouton Tk « standard » et un gadget Page personnalisé. C'est tout ce dont nous avons besoin. |
Enfin, descendez vers le bas de la barre d'outils du gadget et sélectionnez « Custom » (personnalisé). Puis cliquez dans le gadget frameCustom pour mettre en place la réserve d'emplacement de notre gadget personnalisé. Dans Widget Tree (arborescence du gadget), faites un clic droit sur la ligne marquée « Custom: Custom1 », sélectionnez Widget dans la liste déroulante et sélectionnez « Fill container » (remplir le conteneur). Ceci agrandit la réserve de place du gadget personnalisé pour remplir le cadre. | Enfin, descendez vers le bas de la barre d'outils du gadget et sélectionnez « Custom » (personnalisé). Puis cliquez dans le gadget frameCustom pour mettre en place la réserve d'emplacement de notre gadget personnalisé. Dans Widget Tree (arborescence du gadget), faites un clic droit sur la ligne marquée « Custom: Custom1 », sélectionnez Widget dans la liste déroulante et sélectionnez « Fill container » (remplir le conteneur). Ceci agrandit la réserve de place du gadget personnalisé pour remplir le cadre. |
| |
Voici à quoi ressemble le GUI sur mon système actuellement... | Voici à quoi ressemble le GUI sur mon système actuellement : |
| |
**That's it. Save the .tcl file (File | Save), and save it into a convenient folder calling the file "pandastabledemo". Then, select the "Gen_Python" menu item and generate the GUI file and the Support module (these will have the same base filename as our .tcl file, but will be named pandastabledemo.py and pandastabledemo_support.py). | **That's it. Save the .tcl file (File | Save), and save it into a convenient folder calling the file "pandastabledemo". Then, select the "Gen_Python" menu item and generate the GUI file and the Support module (these will have the same base filename as our .tcl file, but will be named pandastabledemo.py and pandastabledemo_support.py). |
Maintenant, vous pouvez fermer Page et ouvrir les deux fichiers Python dans votre environnement de développement (IDE) préféré. Vous n'aurez pas à modifier le fichier du GUI (pandastabledemo.py). Tout notre travail se fera dans le fichier pandastabledemo_support.py. | Maintenant, vous pouvez fermer Page et ouvrir les deux fichiers Python dans votre environnement de développement (IDE) préféré. Vous n'aurez pas à modifier le fichier du GUI (pandastabledemo.py). Tout notre travail se fera dans le fichier pandastabledemo_support.py. |
| |
La première chose que nous avons à faire est d'importer le gadget pandastable... | La première chose que nous avons à faire est d'importer le gadget pandastable : |
| |
from pandastable import Table | from pandastable import Table |
Custom = Table** | Custom = Table** |
| |
Notez que nous n'importons présentement que la portion Table. C'est OK, ça ne nous limite pas. Ensuite, finissons le code de notre fonction de rappel « on btnExit() ». Nous allons juste ajouter une ligne en bas de ce code (n'oubliez pas d'indenter cette ligne pour correspondre au reste de la fonction)... | Notez que nous n'importons présentement que la portion Table. C'est OK, ça ne nous limite pas. Ensuite, finissons le code de notre fonction de rappel « on btnExit() ». Nous allons juste ajouter une ligne en bas de ce code (n'oubliez pas d'indenter cette ligne pour correspondre au reste de la fonction) : |
| |
destroy_window() | destroy_window() |
| |
Ceci fermera notre programme proprement. Maintenant descendez en bas du fichier source et trouvez la ligne qui dit... | Ceci fermera notre programme proprement. Maintenant descendez en bas du fichier source et trouvez la ligne qui dit : |
| |
Custom = tk.Frame # To be updated by user with name of custom widget (à mettre à jour par l'utilisateur avec le nom du gadget personnalisé). | Custom = tk.Frame # To be updated by user with name of custom widget (à mettre à jour par l'utilisateur avec le nom du gadget personnalisé). |
| |
Habituellement, je copie cette ligne et décommente l'original, puis je colle la ligne et la modifie comme j'en ai besoin. Dans ce cas, nous utiliserons... | Habituellement, je copie cette ligne et décommente l'original, puis je colle la ligne et la modifie comme j'en ai besoin. Dans ce cas, nous utiliserons : |
| |
Custom = Table | Custom = Table |
That’s all the code changes we need to do. Save your file and we'll discuss what these lines do.** | That’s all the code changes we need to do. Save your file and we'll discuss what these lines do.** |
| |
Ceci crée un pointeur vers l'importation de pandastable que nous avons faite il y a quelques lignes. Maintenant, nous modifierons la fonction « init » avec notre code. Après la ligne « root = top », mettez le code suivant... | Ceci crée un pointeur vers l'importation de pandastable que nous avons faite il y a quelques lignes. Maintenant, nous modifierons la fonction « init » avec notre code. Après la ligne « root = top », mettez le code suivant : |
| |
csvfile = "BreadBasket.csv" | csvfile = "BreadBasket.csv" |
Ensuite, nous appelons la méthode .show() de pandastable et importons le fichier csv. Enfin et surtout, nous appelons la fonction .update() du gadget de la table. | Ensuite, nous appelons la méthode .show() de pandastable et importons le fichier csv. Enfin et surtout, nous appelons la fonction .update() du gadget de la table. |
| |
C'est tout. Tout le reste est contenu dans pandastable lui-meme. Au total, ce sont 8 lignes (sans compter les commentaires) que nous avons ajouté au code que Page nous avait fourni. | C'est tout. Tout le reste est contenu dans pandastable lui-meme. Au total, ce sont 8 lignes (sans compter les commentaires) que nous avons ajoutées au code que Page nous avait fourni. |
| |
Maintenant, lançez votre programme et vous devriez voir quelque chose comme ce qui est présenté ci-dessous. | Maintenant, lançez votre programme et vous devriez voir quelque chose comme ce qui est présenté ci-dessous. |
En bas, la barre de statut montre le nombre de lignes et de colonnes, vous permet d'agrandir et de réduire la vue et d'agrandir ou de réduire la largeur des colonnes. | En bas, la barre de statut montre le nombre de lignes et de colonnes, vous permet d'agrandir et de réduire la vue et d'agrandir ou de réduire la largeur des colonnes. |
| |
À droite, la barre d'outils vous offre la possibilité de tracer, aggréger, pivoter, fusionner des tables et plus encore. À peu près tout ce dont vous avez besoin pour analyser vos données. | À droite, la barre d'outils vous offre la possibilité de tracer, agréger, pivoter, fusionner des tables et plus encore. À peu près tout ce dont vous avez besoin pour analyser vos données. |
| |
J'ai chargé un autre petit fichier csv - pour montrer la fonction de traçage. C'est en gros une liste des pas qu'un ami, qui se remettait d'une opération était capable de faire, par jour. Il l'a fait comme un simple fichier texte, mais je l'ai converti en CSV juste pour ce projet. En sélectionnant les colonnes Date et Steps (pas), puis en cliquant sur le bouton « plot » (tracer) de la barre d'outils, la fenêtre suivante s'affiche après quelques secondes de réflexion. | J'ai chargé un autre petit fichier csv, pour montrer la fonction de traçage. C'est en gros une liste des pas qu'un ami, qui se remettait d'une opération était capable de faire, par jour. Il l'a fait comme un simple fichier texte, mais je l'ai converti en CSV juste pour ce projet. En sélectionnant les colonnes Date et Steps (pas), puis en cliquant sur le bouton « plot » (tracer) de la barre d'outils, la fenêtre suivante s'affiche après quelques secondes de réflexion. |
| |
À partir de là, j'ai simplement sélectionné le graphique à barres dans la liste déroulante des types de graphique, et regroupé par date. Vous pouvez voir l'image résultante. | À partir de là, j'ai simplement sélectionné le graphique à barres dans la liste déroulante des types de graphique, et regroupé par date. Vous pouvez voir l'image résultante. |