59:tuto_python
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
59:tuto_python [2012/04/25 22:30] – fredphil91 | 59:tuto_python [2012/05/01 14:26] (Version actuelle) – kai23 | ||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
Après notre dernière rencontre, vous devriez avoir une assez bonne idée de la façon d' | Après notre dernière rencontre, vous devriez avoir une assez bonne idée de la façon d' | ||
- | Cette fois, le texte peut sembler un peu laconique dans la partie conception. Tout ce que je vais faire, c'est vous donner des indications pour le placement des widgets ainsi que les attributs et les valeurs requises de cette façon... | + | Cette fois, le texte peut sembler un peu laconique dans la partie conception. Tout ce que je vais faire, c'est vous donner des indications pour le placement des widgets, ainsi que les attributs et les valeurs requises, de cette façon... |
Widget | Widget | ||
Ligne 26: | Ligne 26: | ||
Title: Searcher** | Title: Searcher** | ||
- | Je ne mettrai | + | Je ne citerai |
Voici à quoi va ressembler l' | Voici à quoi va ressembler l' | ||
Ligne 53: | Ligne 53: | ||
Move this close to the center of the frame or close to the frame' | Move this close to the center of the frame or close to the frame' | ||
- | Assurez-vous de sauvegarder souvent. Lorsque vous enregistrez le fichier, donnez-lui le nom « Rechercher ». Rappelez-vous, | + | Assurez-vous de sauvegarder souvent. Lorsque vous enregistrez le fichier, donnez-lui le nom « Rechercher ». Rappelez-vous, |
- | Ensuite, ajoutez un cadre. Il devrait se placer tout en haut du cadre principal. Définissez les attributs comme suit. | + | Ensuite, ajoutez un cadre. Il devrait se placer tout en haut du cadre principal. Définissez les attributs comme suit : |
Largeur : 595 | Largeur : 595 | ||
Ligne 120: | Ligne 120: | ||
Alias : btnCheminRecherche | Alias : btnCheminRecherche | ||
- | Texte : « ... » (sans guillemets) | + | Texte : « ... » (sans guillemets). |
- | Ajoutez cinq (5) cases à cocher. Mettez-les dans l' | + | Ajoutez cinq (5) cases à cocher. Mettez-les dans l' |
Ligne 193: | Ligne 193: | ||
Texte : ALLER ! | Texte : ALLER ! | ||
- | Maintenant, ajoutez un autre cadre en-dessous du précédent. | + | Maintenant, ajoutez un autre cadre en dessous du précédent. |
Largeur : 565 | Largeur : 565 | ||
Ligne 217: | Ligne 217: | ||
Voilà. Nous avons conçu notre interface graphique. Maintenant tout ce qu'il reste à faire est de créer notre liste de fonctions et de lier ces fonctions à nos boutons. | Voilà. Nous avons conçu notre interface graphique. Maintenant tout ce qu'il reste à faire est de créer notre liste de fonctions et de lier ces fonctions à nos boutons. | ||
- | Dans la fenêtre de liste des fonctions, cliquez sur le bouton Nouveau (le bouton le plus à gauche). Ceci nous amène à l' | + | Dans la fenêtre de liste des fonctions, cliquez sur le bouton Nouveau (le bouton le plus à gauche). Ceci nous amène à l' |
def btnClicQuitter(p1): | def btnClicQuitter(p1): | ||
Ligne 241: | Ligne 241: | ||
Enfin, ajoutez une autre fonction appelée « btnCheminRecherche ». Encore une fois, laissez l' | Enfin, ajoutez une autre fonction appelée « btnCheminRecherche ». Encore une fois, laissez l' | ||
- | Enfin, nous devons relier les boutons et les fonctions que nous venons de créer. | + | En tout dernier lieu, nous devons relier les boutons et les fonctions que nous venons de créer. |
- | Faites un clic droit sur le bouton Quitter que nous avons créé, sélectionnez Lier. Une grande boîte apparaîtra. Cliquez sur le bouton Nouvelle liaison, | + | Faites un clic droit sur le bouton Quitter que nous avons créé, sélectionnez Lier. Une grande boîte apparaîtra. Cliquez sur le bouton Nouvelle liaison, |
Liez le bouton ALLER à la fonction btnClicAller et le bouton « ... » à btnClicCheminRecherche. | Liez le bouton ALLER à la fonction btnClicAller et le bouton « ... » à btnClicCheminRecherche. | ||
Ligne 267: | Ligne 267: | ||
Nous allons modifier la portion de code 2.x dans quelques instants pour importer d' | Nous allons modifier la portion de code 2.x dans quelques instants pour importer d' | ||
- | Arrive ensuite la routine « vp_start_gui() ». C'est la routine principale du programme. Ceci met en place notre interface, définit les variables dont nous avons besoin, et appelle ensuite la boucle principale Tkinter. Vous remarquerez peut-être la ligne « w = None » juste en dessous. Elle n'est pas indentée et n'a pas besoin de l' | + | Arrive ensuite la routine « vp_start_gui() ». C'est la routine principale du programme. Ceci met en place notre interface, définit les variables dont nous avons besoin et appelle ensuite la boucle principale Tkinter. Vous remarquerez peut-être la ligne « w = None » juste en dessous. Elle n'est pas indentée et n'a pas besoin de l' |
**Next are two routines (create_Searcher and destroy_Searcher) that are used to replace the main loop routine if we are calling this application as a library. We don't need to worry about these. | **Next are two routines (create_Searcher and destroy_Searcher) that are used to replace the main loop routine if we are calling this application as a library. We don't need to worry about these. | ||
Ligne 283: | Ligne 283: | ||
Exécutez le programme maintenant. Notez que les cases à cocher contiennent des coches grisées. Nous ne voulons pas cela dans notre application finale, nous allons donc créer un peu de code pour les faire disparaître avant que le formulaire ne soit affiché à l' | Exécutez le programme maintenant. Notez que les cases à cocher contiennent des coches grisées. Nous ne voulons pas cela dans notre application finale, nous allons donc créer un peu de code pour les faire disparaître avant que le formulaire ne soit affiché à l' | ||
- | Utilisez-le pour terminez | + | Utilisez-le pour terminer |
**Now, we'll take a look at the class that actually holds the GUI definition. That would be “class Searcher”. Here is where all the widgets are defined and placed in our form. You should be familiar with this by now. | **Now, we'll take a look at the class that actually holds the GUI definition. That would be “class Searcher”. Here is where all the widgets are defined and placed in our form. You should be familiar with this by now. | ||
Ligne 301: | Ligne 301: | ||
Deux classes de plus sont créées, elles contiennent le code pour gérer l' | Deux classes de plus sont créées, elles contiennent le code pour gérer l' | ||
- | Revenons maintenant au début du code et commençons à le modifier | + | Revenons maintenant au début du code et commençons à le modifier. |
- | . | + | |
- | Nous avons besoin d' | + | Nous avons besoin d' |
import os | import os | ||
Ligne 323: | Ligne 323: | ||
FileList=[]** | FileList=[]** | ||
- | Maintenant, trouvez la section qui contient la ligne « py2 = True ». Comme nous l' | + | Maintenant, trouvez la section qui contient la ligne « py2 = True ». Comme nous l' |
import tkFileDialog | import tkFileDialog | ||
Ligne 329: | Ligne 329: | ||
import tkFont | import tkFont | ||
- | Ensuite nous devons ajouter quelques variables à la routine « initialise_var_Tk() ». Au bas de la routine, ajoutez les lignes suivantes : | + | Ensuite nous devons ajouter quelques variables à la routine « initialise_var_Tk() ». En bas de la routine, ajoutez les lignes suivantes : |
global exts, FileList | global exts, FileList | ||
Ligne 355: | Ligne 355: | ||
LoadDataGrid()** | LoadDataGrid()** | ||
- | Ici, nous créons deux variables globales (exts et ListeFichiers) qui seront utilisées plus tard dans notre code. Les deux sont des listes. « exts » est une liste des extensions | + | Ici, nous créons deux variables globales (exts et ListeFichiers) qui seront utilisées plus tard dans notre code. Les deux sont des listes. « exts » est une liste des extensions |
Puisque notre « btnClicQuitter » est déjà créé pour nous par Page, nous allons nous occuper de la routine « btnClicAller ». Commentez la déclaration pass et ajoutez le code de sorte qu'il ressemble à ceci : | Puisque notre « btnClicQuitter » est déjà créé pour nous par Page, nous allons nous occuper de la routine « btnClicAller ». Commentez la déclaration pass et ajoutez le code de sorte qu'il ressemble à ceci : | ||
Ligne 387: | Ligne 387: | ||
| | ||
- | C'est la routine qui sera appelée lorsque l' | + | C'est la routine qui est appelée lorsque l' |
Enfin, nous appelons une routine nommée « ChargerDonnees ». | Enfin, nous appelons une routine nommée « ChargerDonnees ». | ||
Ligne 449: | Ligne 449: | ||
Ici, nous créons une variable globale appelée VueArborescente. Nous appelons ensuite une routine qui efface les contrôles gris dans les cases à cocher, affectons la variable VueArborescente pour pointer vers l' | Ici, nous créons une variable globale appelée VueArborescente. Nous appelons ensuite une routine qui efface les contrôles gris dans les cases à cocher, affectons la variable VueArborescente pour pointer vers l' | ||
- | Voici le code de la routine InitialiserCases qui doit être la prochaine. | + | Voici le code de la routine InitialiserCases qui doit être la suivante : |
def InitialiserCases(): | def InitialiserCases(): | ||
Ligne 469: | Ligne 469: | ||
Next (bottom right) we call the SetupTreeview routine. It's fairly straightforward. We define a variable “ColHeads” with the headings we want in each column of the treeview. We do this as a list. We then set the heading attribute for each column. We also set the column width to the size of this header.** | Next (bottom right) we call the SetupTreeview routine. It's fairly straightforward. We define a variable “ColHeads” with the headings we want in each column of the treeview. We do this as a list. We then set the heading attribute for each column. We also set the column width to the size of this header.** | ||
- | Ici, tout ce que nous faisons, c'est de définir les variables (ce qui définit automatiquement l' | + | Ici, tout ce que nous faisons, c'est de définir les variables (ce qui définit automatiquement l' |
- | Laissez votre mémoire se souvenir | + | Essayez |
Ensuite (en bas à droite) nous appelons la routine InitialiserVueArborescente. C'est assez simple. Nous définissons une variable « TitresColonnes » avec les rubriques que nous voulons dans chaque colonne de l' | Ensuite (en bas à droite) nous appelons la routine InitialiserVueArborescente. C'est assez simple. Nous définissons une variable « TitresColonnes » avec les rubriques que nous voulons dans chaque colonne de l' | ||
Ligne 491: | Ligne 491: | ||
Enfin, nous devons créer la routine « ChargerDonnees » (page suivante, en haut à droite) qui est l' | Enfin, nous devons créer la routine « ChargerDonnees » (page suivante, en haut à droite) qui est l' | ||
- | C'est tout pour le première vue de l' | + | C'est tout pour la première vue de l' |
Dans la routine « initialise_var_Tk », ajoutez le code suivant à la fin. | Dans la routine « initialise_var_Tk », ajoutez le code suivant à la fin. | ||
Ligne 531: | Ligne 531: | ||
See you next time.** | See you next time.** | ||
- | Enregistrez et exécutez votre programme. Vous devriez | + | Enregistrez et exécutez votre programme. Vous devrez |
- | Cette application ne fait pas vraiment grand-chose, mais elle vous a montré comment utiliser Page pour développer très rapidement. Avec l' | + | Cette application ne fait pas vraiment grand chose, mais elle vous a montré comment utiliser Page pour développer très rapidement. Avec l' |
- | Le fichier tcl est enregistré sur pastebin : http:// | + | Le fichier tcl est enregistré sur pastebin : http:// |
Rendez-vous la prochaine fois. | Rendez-vous la prochaine fois. | ||
- |
59/tuto_python.1335385826.txt.gz · Dernière modification : 2012/04/25 22:30 de fredphil91