IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Python Discussion :

ouvrir une fenètre avec un pixel .


Sujet :

Téléchargez Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ouvrir une fenètre avec un pixel .
    Bonsoir .

    import pixel

    pixel.initialiser(40, 30, 20)

    pixel.marquer(2, 1)

    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)

    pixel.afficher()


    lorsque je j'exécute programme une fenètre avec un pixel s'ouvre donc jusque là aucun problème mais une fois que je ferme la fenêtre un message d’erreur apparaît et je ne peux plus exécuter le programme .
    le message d'erreur est le suivant :
    Traceback (most recent call last):
    File "<tmp 1>", line 5, in <module>
    pixel.initialiser(40, 30, 20)
    File "C:\pyzo2013b\pixel.py", line 54, in initialiser
    _fen.destroy()
    File "C:\pyzo2013b\lib\tkinter\__init__.py", line 1796, in destroy
    self.tk.call('destroy', self._w)
    _tkinter.TclError: can't invoke "destroy" command: application has been destroyed
    .

    j'aimerais que quelqu'un puisse me dire ce qu'il faut faire pour remédier à cela .

    merci d'avance .

  2. #2
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Salut et bienvenue sur le forum.

    Avant tout, pour poster un code, il faut utiliser la balise # dans l'edition de post. Cela permet d'avoir une copie conforme de ton code et donc de pouvoir t'aider correctement. Sache que certains refuseront, à juste titre, de t'aider à cause de cela. Dans ton cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import pixel
     
    pixel.initialiser(40, 30, 20)
     
    pixel.marquer(2, 1)
     
    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)
     
    pixel.afficher()
    Premier post, tu ne pouvais pas savoir

    Sinon concernant ton probleme, il semblerait que ta librairie utilise tkinter pour générer l'IHM. TKinter est en general installé de base avec Python. C'est la lib de base pour créer des IHM.
    Quand tu ferme une fenetre IHM, un signal est émis. Dans ton cas Detroy. Sauf que ce signal ne semble pas etre géré correctement.

    N'ayant pas python 3, je ne peux pas tester le code. Mais tu ne semble rien avoir fait d'anormal puisque tu t'es contenté de copier le code d'exemple pour le tester.

    Peut etre quelqu'un avec Python 3 pourra plus t'aider à ce sujet

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ryry1 Voir le message
    Bonsoir .

    import pixel

    pixel.initialiser(40, 30, 20)

    pixel.marquer(2, 1)

    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)

    pixel.afficher()


    lorsque je j'exécute programme une fenètre avec un pixel s'ouvre donc jusque là aucun problème mais une fois que je ferme la fenêtre un message d’erreur apparaît et je ne peux plus exécuter le programme .
    le message d'erreur est le suivant :
    Traceback (most recent call last):
    File "<tmp 1>", line 5, in <module>
    pixel.initialiser(40, 30, 20)
    File "C:\pyzo2013b\pixel.py", line 54, in initialiser
    _fen.destroy()
    File "C:\pyzo2013b\lib\tkinter\__init__.py", line 1796, in destroy
    self.tk.call('destroy', self._w)
    _tkinter.TclError: can't invoke "destroy" command: application has been destroyed
    .

    j'aimerais que quelqu'un puisse me dire ce qu'il faut faire pour remédier à cela .

    merci d'avance .
    Bonjour,

    Merci de faire l'effort de consulter ceci :

    http://www.developpez.net/forums/d45...documentation/

    Nom : a-lire-avant-de-poster.png
Affichages : 744
Taille : 53,1 Ko

    En outre, il est difficile de voir ce qui se passe dans le fichier pixel.py si vous ne publiez pas le code directement concerné par l'erreur c'est-à-dire, en l'occurrence, le code complet de ce fichier pixel.py.

    Aidez-nous à vous aider.

    @+.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ouvrir une fenêtre avec un pixel
    a oui pardon je ne savais pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import pixel
     
    # Crée une fenêtre rectangulaire de 40 * 30 pixels
    # Le troisième paramètre est le facteur de zoom
    pixel.initialiser(40, 30, 20)
     
    # Marque un pixel
    # Notez que l'origine (0, 0) est le point tout en haut à gauche
    pixel.marquer(2, 1)
     
    # Affiche la taille de l'image
    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)
     
    # Affiche les modifications et attend la fermeture de la fenêtre
    pixel.afficher()
    Fichiers attachés Fichiers attachés

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ryry1 Voir le message
    a oui pardon je ne savais pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import pixel
     
    # Crée une fenêtre rectangulaire de 40 * 30 pixels
    # Le troisième paramètre est le facteur de zoom
    pixel.initialiser(40, 30, 20)
     
    # Marque un pixel
    # Notez que l'origine (0, 0) est le point tout en haut à gauche
    pixel.marquer(2, 1)
     
    # Affiche la taille de l'image
    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)
     
    # Affiche les modifications et attend la fermeture de la fenêtre
    pixel.afficher()
    Bon, j'ai vérifié le code ci-dessus sous Windows et sous Linux (vous n'avez pas précisé l'OS ni la version de Python) sous script comme il se doit : ça fonctionne parfaitement.

    ensuite, j'ai testé votre portion de code en console python3/IDLE et là effectivement, j'ai une erreur :

    Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        pixel.initialiser(40, 30, 20)
      File "C:\Users\rs\Documents\pixel.py", line 54, in initialiser
        _fen.destroy()
      File "C:\Python34\lib\tkinter\__init__.py", line 1842, in destroy
        self.tk.call('destroy', self._w)
    _tkinter.TclError: can't invoke "destroy" command: application has been destroyed
    
    votre traceback parle de File "<tmp 1>", line 5, in <module> : c'est quoi ce "tmp 1" ? un fichier script ? une console ?

    en tout cas, si vous copiez/collez le code suivant dans un fichier test.py dans IDLE et que enregistrez le fichier puis vous lancez F5 (run script), ça devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import pixel
     
    # Crée une fenêtre rectangulaire de 40 * 30 pixels
    # Le troisième paramètre est le facteur de zoom
    pixel.initialiser(40, 30, 20)
     
    # Marque un pixel
    # Notez que l'origine (0, 0) est le point tout en haut à gauche
    pixel.marquer(2, 1)
     
    # Affiche la taille de l'image
    print('Largeur:', pixel.largeur)
    print('Hauteur:', pixel.hauteur)
     
    # Affiche les modifications et attend la fermeture de la fenêtre
    pixel.afficher()
    accessoirement, faites un tour de ce côté-ci : http://www.developpez.net/forums/d13...r/#post7516008

    vous y gagnerez.

    @+.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ouvrir une fenêtre avec un pixel
    salut .

    je mis connait pas en informatique donc quand vous me dite l'os ou idle je ne comprend pas .

    ce tm1 je ne sais pas ce que s'est .

    sinon ces ligne de code vous m'avez dit de les enregistré dans un fichier test.py .
    il faut juste que je crée un fichier test.py et que j'y range le programme ? fin je ne sais pas ce qu'il faut que je fasse la .

    merci d'avance .

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ouvrir une fenêtre avec un pixel
    le truc c'est que pour ré-executé le programme il faut que je change de shell ou que je ferme et que je le ré-ouvre et j'aimerais savoir pourquoi et comment faire pour ne pas à avoir à chaque à fermer le shell et le ré-ouvrir .

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    L'os est l'Operating System c'est-à-dire le programme principal qui fait vivre la machine: Linux, Windows, MacOs, Android ...

    Un IDE est un Environnement de Développement Intégré, soit un éditeur de texte doté d'une série d'outils d'aide à la programmation, souvent spécialisé pour certains langages. Celui qui est livré avec Python s'appelle astucieusement IDE. C'est un machin vieillot et peu pratique, pour un meilleur choix voir ici:
    http://python.developpez.com/telecha...ie/462/RAD-EDI

    Quand on débute, il est tentant de faire tourner du code tout fait, avec interface graphique s'il vous plaît, mais à la moindre erreur on est totalement démunis, incapable de faire face aux questions les plus basiques. L'informatique c'est comme pour toute technique, ça s'apprend par le début.

    J'ignore d'où provient ce code pixel.py mais c'est une véritable horreur syntaxique. En tout cas, certainement pas un exemple pour débuter. Sur ce forum nous avons pour habitude de recommander ceci:
    http://python.developpez.com/cours/apprendre-python3/

    Pour ton problème de console, essaye avec Ctrl+C. Si l'interpréteur est à l'écoute tu récupéreras la main, sinon rien à faire, faut relancer une nouvelle console.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par VinsS Voir le message
    J'ignore d'où provient ce code pixel.py mais c'est une véritable horreur syntaxique.
    J'aurais sans doute été plus vulgaire : c'est pourquoi je me suis retenu d'en parler.

    Merci VinsS.

    @+.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ouvrir une fenêtre avec un pixel
    ok merci VinsS .


    j'ai essayé ce que tu m'as dit mais cela n'a rien fait . je ne comprend pas pourquoi sa fait ça .

    lorsque que la fenêtre avec le pixel apparaît et que par exemple j'ai envie d'ajouter d'autre pixel ou de le changer de placer et bien après modification du programme et que je l'exécute ça ne fait rien du coup je ferme la fenêtre avec le pixel et quand j'exécute ( ctrl+e) et bien il y a le message d'erreur donc faut que je change de shell.

Discussions similaires

  1. Ouvrir une fenêtre avec un Thread
    Par darkman13130 dans le forum C#
    Réponses: 1
    Dernier message: 12/04/2011, 13h26
  2. Ouvrir une fenêtre avec MVVM
    Par Wakko2k dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 15/10/2010, 16h12
  3. créer une fenêtre avec des pixels trasparentes
    Par mehdiing dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 25/04/2008, 15h54
  4. Comment ouvrir une fentre avec une taille fixe en javascript
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/07/2007, 17h54
  5. [VB.NET] Comment ouvrir une fenêtre modale avec Thread ?
    Par Damien10 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2006, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo