|
|
Tutorial
Ce tutorial est basé sur les fichiers tut01.py et tut02.py fournis avec PLUIE (les deux noms précédents sont cliquables).
Notions de base L'utilisation de PLUIE est décomposé en deux parties (habituellement deux fonctions) :
Nous allons, bien sûr, commencer par la partie création d'une fiche.
Propriétés des éléments Une dernière notion, avant de commencer, c'est le groupe. Dans PLUIE, on ne pose pas les éléments "comme ça". Ils doivent toujours être insérés dans un groupe. En pratique, on prépare l'objet. On l'insère, un peu plus tard, dans le groupe voulu. Un groupe peut être inséré dans un autre groupe. Tout élément de PLUIE a certaines propriétés. Pour l'instant, nous verrons uniquement celles qui vont nous servir. La première, c'est :
Attaquons-nous maintenant à créer notre première fiche.
Création d'une fiche Notre but, c'est d'obtenir ça :
Le début du code :
L'importation de pluie_ini (fichier pluie_ini.py) permet à PLUIE de connaitre l'emplacement de quelques répertoires-clefs. La dernière ligne correspond à la préparation d'un groupe. Pour créer un groupe, il faut instancier ggroup de PLUIE. Comme il n'y a pas d'ID, celle-ci sera calculée par PLUIE.
Préparation d'un libellé, à afficher sur l'écran. Nous instancions donc glabel de PLUIE. Et nous découvrons une nouvelle propriété, label. Cette propriété existe pour glabel, mais pas pour ggroup, que nous avons vu plus haut.
Ici, on crée deux champs, avec, comme ID respectives, CH1 et CH2. Notez l'utilisation de la propriété label, qui va contenir le texte précédant, à l'écran, chacun des champs.
Cette ligne sert à définir un saut de ligne. Grace à la priopriété nb, on peut indiquer combien de sauts de lignes PLUIE devra utiliser.
Ces deux lignes préparent deux boutons, dont les ID sont "BTCALC" & "BTQUIT" . La propriété label sert à indiquer le texte qui sera écrit sur chaque bouton.
On insère les différents éléments que nous avons préparés, dans le groupe g0. Notez que l'insertion en une seule ligne n'est pas obligatoire. On aurait tout aussi bien pu écrire :
Il ne reste plus qu'à conclure :
La première ligne donne l'ordre à PLUIE de générer la fiche, en utilisant le template (squelette) pluie___.htm. La fiche sera écrite dans le fichier temp.htm. La ligne finale est facultative. Elle ne servira que pour des utilisations avancées de PLUIE, comme la modification ou la création dynamique d'élements.
Utilisation d'une fiche Avec la fonction utilise(), nous allons pouvoir utiliser la fiche que nous venons juste de créer.
On ouvre la fiche enregistrée dans le fichier temp.htm, en lui donnant une largeur de 420 pixels, et une hauteur de 400. C'est une partiocularité de PLUIE, de définir la taille d'une fiche au moment de l'utilisation, et non dans sa préparation. Cela a l'avantage de rendre la préparation des fiches un peu plus indépendante des résolutions de l'écran (enfin, c'est relatif). Après l'éxécution de la ligne, la fiche est visualisée.
Ici, on travaille sur la fiche, avant de gérer ses évènements. Donc, on :
Gérer les évènements de la fiche Travailler avec une fiche, cela passe par l'obtention d'informations sur les évènements qui s'y produisent. On va utiliser une boucle qui réagira aux évènements fournis par PLUIE. La boucle va tourner jusqu'à ce qu'on l'arrête, ou qu'une erreur se produise :
Les évènements (blur, focus, clavier, souris, etc.) sont mémorisés dans une file (FIFO ; queue en anglais). Ainsi, on les traite au fur et à mesure, sans en perdre, même si les traitements sont longs. On peut dire qu'il y a un fonctionnement en threads séparés, entre la fiche et son utilisation. Les seuls évènements gérés sont les suivants :
Les évènements disposent de plusieurs propriétés, pour aider à gérer la fiche :
if g.type=='break': Si g.type=='break' c'est qu'il y a (eu) un problème avec la fiche. On sort donc de la boucle de gestion. Le time.sleep est là pour soulager le système, lorsqu'il ne se passe rien (pas d'évènement). Une fiche PLUIE au repose ne consomme pratiquement pas de ressources CPU.
Teste s'il s'agit d'un clic de la souris. Bien que l'on puisse travailler avec des clics sur presque tous les éléments d'une fiche, nous allons, ici, simplement traiter ceux qui concernent les boutons (les autres clics seront otés de la file, mais ne seront pas traités).
Si l'utilisateur a cliqué sur le bouton BTCALC, on va effectuer un traitement ; ici, on va effectuer un calcul, d'après le contenu du chlmp CH1 (on récèpère la valeur avec "ch1.value"). Le résultat est affecté au champ CH2, par la dernière ligne.
Ce bloc de code gère le cas où l'utilisateur a cliqué sur le bouton "Quitter".
Il ne reste plus qu'à lancer nos deux fonctions :
Comment fonctionne notre fiche Une fois la fiche ouverte, on peut saisir un calcul dans le champ "Calcul". Ensuite il faut cliquer sur le bouton "Calculer", pour voir le résultat dans le champ "Résultat". Pour fermer la fiche, on peut, soit cliquer sur le bouton "Quitter", soit utiliser la croix, en haut à droite. Certes, cette fiche est simpliste, mais elle nous a permis de découvrir PLUIE. Pour aller un peu plus loin, consultez le Tutorial-2, qui traite de la même fiche, légèrement revue et corrigée. |