Outils pour utilisateurs

Outils du site


issue137:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
issue137:python [2018/10/17 11:52] auntieeissue137:python [2018/10/19 14:51] (Version actuelle) andre_domenech
Ligne 5: Ligne 5:
 Alors que je suis assis ici aux petites heures (3 h 30) du matin, nous sommes au début de septembre 2018. Nous sommes en pleine saison des ouragans. J'allais dire « au Texas », mais c'est à peu près n'importe où dans l'hémisphère nord, dans les régions « tropicales » à environ 400 miles d'une zone côtière. Nous sommes dans la zone « Atlantique » et la saison des ouragans s'y étend du 1er juin au 30 novembre. Alors que je suis assis ici aux petites heures (3 h 30) du matin, nous sommes au début de septembre 2018. Nous sommes en pleine saison des ouragans. J'allais dire « au Texas », mais c'est à peu près n'importe où dans l'hémisphère nord, dans les régions « tropicales » à environ 400 miles d'une zone côtière. Nous sommes dans la zone « Atlantique » et la saison des ouragans s'y étend du 1er juin au 30 novembre.
    
-Quand j'étais jeune, nos préparatifs étaient déjà en place bien avant la fin mai. Cela comprenait l'achat de piles pour les radios à transistors, la création de notre boîte à ouragan remplie de bougies, d'aliments en conserve, de ruban adhésif en toile, de lampes de poche, des bouteilles d'eau, des radios à transistors, de piles et plus encore. Bien sûr, quand j'étais jeune, les arcs-en-ciel étaient en noir et blanc et nous devions regarder la télévision à la chandelle parce qu'il n'y avait pas d'électricité. (Pensez-y un instant....cela aura du sens.)+Quand j'étais jeune, nos préparatifs étaient déjà en place bien avant la fin mai. Cela comprenait l'achat de piles pour les radios à transistors, la création de notre boîte à ouragan remplie de bougies, d'aliments en conserve, de ruban adhésif en toile, de lampes de poche, de bouteilles d'eau, de radios à transistors, de piles et plus encore. Bien sûr, quand j'étais jeune, les arcs-en-ciel étaient en noir et blanc et nous devions regarder la télévision à la chandelle parce qu'il n'y avait pas d'électricité. (Pensez-y un instant... cela aura du sens.)
  
  
Ligne 16: Ligne 16:
 His problem was that when he recreated one of the examples in the tutorial and ran it, he was getting a "NameError: name 'che39' is not defined" error. Being a beginner Python user, and at the same time, a new Page user, he didn't understand what the issue was. The Python error message didn't mean anything to him.** His problem was that when he recreated one of the examples in the tutorial and ran it, he was getting a "NameError: name 'che39' is not defined" error. Being a beginner Python user, and at the same time, a new Page user, he didn't understand what the issue was. The Python error message didn't mean anything to him.**
  
-Pourquoi suis-je en train de parler d'ouragans et de quand j'étais jeune ? Je n'en suis pas vraiment sûr, mais cela m'a semblé être une bonne idée à ce moment-là, et ce pourrait être un bon moyen de faire une transition vers notre discussion de ce moi-ci.+Pourquoi suis-je en train de parler d'ouragans et de quand j'étais jeune ? Je n'en suis pas vraiment sûr, mais cela m'a semblé être une bonne idée à ce moment-là, et ce pourrait être un bon moyen de faire une transition vers notre discussion de ce mois-ci.
  
 On m'a appris il y a longtemps que « Si vous donnez un poisson à un homme, il sera nourri pour un jour. Si, à la place, vous lui apprenez à pêcher, il sera nourri pour le reste de sa vie ». C'est une maxime que j'ai essayé d'appliquer tout au long de ma vie, d'aussi loin que je puisse me souvenir. Je suppose que je suis un professeur frustré, piégé dans le corps d'un comédien, piégé dans le corps d'un musicien médiocre, piégé dans le corps d'un programmeur. C'est parce que j'aime enseigner des choses aux gens que j'ai amorcé ce voyage presque mensuel. On m'a appris il y a longtemps que « Si vous donnez un poisson à un homme, il sera nourri pour un jour. Si, à la place, vous lui apprenez à pêcher, il sera nourri pour le reste de sa vie ». C'est une maxime que j'ai essayé d'appliquer tout au long de ma vie, d'aussi loin que je puisse me souvenir. Je suppose que je suis un professeur frustré, piégé dans le corps d'un comédien, piégé dans le corps d'un musicien médiocre, piégé dans le corps d'un programmeur. C'est parce que j'aime enseigner des choses aux gens que j'ai amorcé ce voyage presque mensuel.
Ligne 44: Ligne 44:
 Je lui ai répondu que le problème est dû à son script Python qui utilisait un nom de variable qui n'existait pas dans une opération de comparaison, surtout une employant une méthode. J'ai suggéré qu'il avait une faute de frappe dans son code ou qu'il avait manqué une étape dans la section de conception du tutoriel. Je lui ai donné quelques pistes pour chercher le problème. La première était d'ouvrir le projet dans Page et de vérifier les attributs spécifiques du widget CheckButton. Dans ce cas, il y a un attribut pour la variable qui permet à l'utilisateur de vérifier l'état du widget en utilisant la méthode .get(). C'est de là que vient le « che39 ». Page fournit une variable par défaut pour cela. Le tutoriel a dit de s'assurer que cet attribut de variable soit bien défini sur « che39 », puisque parfois Page est livré avec un autre attribut. Lorsqu'il a recréé le projet, il aurait pu mettre quelque chose de différent par accident ou manquer cette partie. Ça nous arrive à tous de temps en temps. Je lui ai répondu que le problème est dû à son script Python qui utilisait un nom de variable qui n'existait pas dans une opération de comparaison, surtout une employant une méthode. J'ai suggéré qu'il avait une faute de frappe dans son code ou qu'il avait manqué une étape dans la section de conception du tutoriel. Je lui ai donné quelques pistes pour chercher le problème. La première était d'ouvrir le projet dans Page et de vérifier les attributs spécifiques du widget CheckButton. Dans ce cas, il y a un attribut pour la variable qui permet à l'utilisateur de vérifier l'état du widget en utilisant la méthode .get(). C'est de là que vient le « che39 ». Page fournit une variable par défaut pour cela. Le tutoriel a dit de s'assurer que cet attribut de variable soit bien défini sur « che39 », puisque parfois Page est livré avec un autre attribut. Lorsqu'il a recréé le projet, il aurait pu mettre quelque chose de différent par accident ou manquer cette partie. Ça nous arrive à tous de temps en temps.
  
-Il s'avère que c'est là que se trouvait l'erreur, mais il a mis le nom de la variable au mauvais endroit dans l'éditeur d'attributs. Il l'a mis sous la zone de saisie de la variable texte, pas sous la zone variable. Encore une fois, une erreur courante. Je sais que je l'ai fait bien plus de fois que je veux l'avouer.+Il s'avère que c'est là que se trouvait l'erreur, mais il a mis le nom de la variable au mauvais endroit dans l'éditeur d'attributs. Il l'a mis sous la zone de saisie de la variable texte, pas sous la zone variable. Encore une fois, une erreur courante. Je sais que je l'ai faite bien plus de fois que je veux l'avouer.
  
 Quand le nouvel utilisateur a trouvé la cause de ce problème, il est tombé sur un autre. Cette fois, ce n'était pas de sa faute. Quelques autres utilisateurs de Page l'ont découvert il y a quelques mois, mais je n'ai jamais été capable de le recréer. Quand le nouvel utilisateur a trouvé la cause de ce problème, il est tombé sur un autre. Cette fois, ce n'était pas de sa faute. Quelques autres utilisateurs de Page l'ont découvert il y a quelques mois, mais je n'ai jamais été capable de le recréer.
Ligne 55: Ligne 55:
 I had seen an issue posted on the Page discussion page about this months ago, and suggested to the user that they try to use the absolute positioning mode when designing his GUI. It turns out that this actually does work. However, there are issues with this. In the absolute position mode, when you resize the GUI form in the run mode, none of the widgets will resize themselves. This is, again, not really something that you want your end users to experience. The image below, however shows that my suggestion, does work.** I had seen an issue posted on the Page discussion page about this months ago, and suggested to the user that they try to use the absolute positioning mode when designing his GUI. It turns out that this actually does work. However, there are issues with this. In the absolute position mode, when you resize the GUI form in the run mode, none of the widgets will resize themselves. This is, again, not really something that you want your end users to experience. The image below, however shows that my suggestion, does work.**
  
-Il semble que si vous utilisez Python 3.x et que vous utilisez un LabelFrame, PARFOIS certains des widgets que vous mettez à l'intérieur finiront par avoir l'air compressés, comme une voiture écrasée. Jetez un coup d'œil à l'exemple que j'ai écrit pour illustrer ce problème :+Il semble que si vous utilisez Python 3.x et un LabelFrame, PARFOIS certains des widgets que vous mettez à l'intérieur finiront par avoir l'air compressés, comme une voiture écrasée. Jetez un coup d'œil à l'exemple que j'ai écrit pour illustrer ce problème :
  
 Cela ne ressemble vraiment pas à quelque chose que vous voulez publier en tant qu'interface graphique. Ce n'est pas une faute de Page et ce n'est pas la faute de la personne qui a créé l'interface graphique. Il fonctionne très bien sous Python 2.x et c'est pourquoi je n'ai pas pu dupliquer le problème pendant longtemps. Cela ne ressemble vraiment pas à quelque chose que vous voulez publier en tant qu'interface graphique. Ce n'est pas une faute de Page et ce n'est pas la faute de la personne qui a créé l'interface graphique. Il fonctionne très bien sous Python 2.x et c'est pourquoi je n'ai pas pu dupliquer le problème pendant longtemps.
  
-J'avais vu un problème affiché sur la page de discussion de Page à ce sujet il y a des mois, et j'ai suggéré à l'utilisateur d'essayer d'utiliser le mode de positionnement absolu lors de la conception de son interface graphique. Il s'avère que cela fonctionne vraiment. Cependant, il y a des problèmes à ce sujet. En mode position absolue, lorsque vous redimensionnez le formulaire GUI en mode exécution, aucun des widgets ne se redimensionnera d'eux-mêmes. Encore une fois, ce n'est pas vraiment quelque chose que vous voulez que vos utilisateurs finaux perçoivent. L'image ci-dessous, cependant, montre que ma suggestion fonctionne.+J'avais vu un problème affiché sur la page de discussion de Page à ce sujet il y a des mois, et j'ai suggéré à l'utilisateur d'essayer d'utiliser le mode de positionnement absolu lors de la conception de son interface graphique. Il s'avère que cela fonctionne vraiment. Cependant, il y a des problèmes à ce sujet. En mode position absolue, lorsque vous redimensionnez le formulaire GUI en mode exécution, aucun des widgets ne se redimensionnera de lui-même. Encore une fois, ce n'est pas vraiment quelque chose que vous voulez que vos utilisateurs finaux perçoivent. L'image ci-dessous, cependant, montre que ma suggestion fonctionne.
  
  
Ligne 70: Ligne 70:
 Until then, have fun!**  Until then, have fun!** 
  
-Don était au courant depuis quelques temps, mais il était incapable d'expliquer ce qui se passait. Il s'avère que c'est un problème avec le widget TCL/TK, pas du tout avec la bibliothèque Python Tkinter. Il avait essayé beaucoup de procédés, pensant que c'était quelque chose qu'il avait fait. J'ai appris hier soir qu'il y a un petit avertissement documenté pour le widget qui semble résoudre le problème, et il est en fait annoté (dans la documentation TCL) que cet avertissement « n'est probablement pas très utile ». C'est drôle comme un commentaire maladroit dans la documentation peut faire toute la différence.+Don était au courant depuis quelque temps, mais il était incapable d'expliquer ce qui se passait. Il s'avère que c'est un problème avec le widget TCL/TK, pas du tout avec la bibliothèque Python Tkinter. Il avait essayé beaucoup de procédés, pensant que c'était quelque chose qu'il avait fait. J'ai appris hier soir qu'il y a un petit avertissement documenté pour le widget qui semble résoudre le problème, et il est en fait annoté (dans la documentation TCL) que cet avertissement « n'est probablement pas très utile ». C'est drôle comme un commentaire maladroit dans la documentation peut faire toute la différence.
  
 Quoi qu'il en soit, Don et moi testons la solution maintenant et nous verrons ce qui se passera. Quoi qu'il en soit, Don et moi testons la solution maintenant et nous verrons ce qui se passera.
  
-Eh bien, les vieux soucis médicaux refont leur apparition et mes médicaments commencent à à nouveau à me rendre somnolent. Je déteste avoir à le faire, mais je conclus pour ce mois-ci. Si tout se passe comme je l'espère, je vous présenterai quelque chose de divertissant le mois prochain.+Eh bien, les vieux soucis médicaux refont leur apparition et mes médicaments commencent à nouveau à me rendre somnolent. Je déteste avoir à le faire, mais je conclus pour ce mois-ci. Si tout se passe comme je l'espère, je vous présenterai quelque chose de divertissant le mois prochain.
  
 D'ici là, amusez-vous bien ! D'ici là, amusez-vous bien !
  
  
issue137/python.1539769970.txt.gz · Dernière modification : 2018/10/17 11:52 de auntiee