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

EDI/RAD Python Discussion :

Bugs lors du lancement d'une application pygame depuis IDLE


Sujet :

EDI/RAD Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Bugs lors du lancement d'une application pygame depuis IDLE
    Bonjour à tous.
    Dépité après des heures de recherche pour un problème stupide, je fais appel à vous dans l'espoir d'obtenir un peu d'aide pour un problème assez bête (il me semble).

    Si vous pouviez me dire si vous rencontrer ou non le même problème général, ça serait déjà une grande aide

    Je programme sous python depuis un peu plus d'un an, avec IDLE.

    Je voudrais utiliser pygame pour ses possibilités de déplacements du curseur souris, seulement dès que je lance le moindre script appelant une fenêtre graphique crée avec pygame, cela me crée deux types de plantages :

    un plantage au déplacement de cette fenêtre, cet espèce d'effet de rémanence où les anciennes position des fenêtres ne disparaissent pas.

    Plus embêtant, lorsque je veux fermer la fenêtre graphique créa via pygame et apparu lors de l'execution du script depuis idle, j'ai un plantage et je suis obligé de faire un ctrl alt sup pour killer l'application python.
    ça me ferme l'application python et IDLE.

    le problème arrive aussi bien avec python 2.3 que pour python 2.4, avec leur module pygam correspondant, le tout sous windows XP

    J'ai essayé avec un autre éditeur, même problème.

    A noté que l'execution directe sans passer par IDLE ne pose aucun souci, mais ça me fait transpirer rien que de penser aux problèmes liés au debuggage.

    Comment font les utilisateurs de pygames ? je suis actuellement même pas au niveau du newbi, au secours !!!

    un exemple du code de base qui n'arrive même pas à être fermer chez moi (mais ça le fait pour tout les scripts créant une fenêtre avec pygame) :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #!/usr/bin/python
     
    import pygame
    from pygame.locals import *
     
    def main():
    	# Initialise screen
    	pygame.init()
    	screen = pygame.display.set_mode((150, 50))
    	pygame.display.set_caption('Basic Pygame program')
     
    	# Fill background
    	background = pygame.Surface(screen.get_size())
    	background = background.convert()
    	background.fill((250, 250, 250))
     
    	# Display some text
    	font = pygame.font.Font(None, 36)
    	text = font.render("Hello There", 1, (10, 10, 10))
    	textpos = text.get_rect()
    	textpos.centerx = background.get_rect().centerx
    	background.blit(text, textpos)
     
    	# Blit everything to the screen
    	screen.blit(background, (0, 0))
    	pygame.display.flip()
     
    	# Event loop
    	while 1:
    		for event in pygame.event.get():
    			if event.type == QUIT:
    				return
     
    		screen.blit(background, (0, 0))
    		pygame.display.flip()

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Il ne faut pas lancer le programme depuis IDLE mais exécuter directement le .py

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Tu peut donner le programme en entier, c'est à dire avec la façon dont tu lance main() et les identations dans une balise code (le dièse quand tu poste un message)? Après avoir rajouté ce qui manque moi même ton programme tourne sans problème chez moi, je n'ai pas de plantage ou quoi que ce soit:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #!/usr/bin/python
     
    import pygame
    from pygame.locals import *
     
    def main():
    	# Initialise screen
    	pygame.init()
    	screen = pygame.display.set_mode((150, 50))
    	pygame.display.set_caption('Basic Pygame program')
     
    	# Fill background
    	background = pygame.Surface(screen.get_size())
    	background = background.convert()
    	background.fill((250, 250, 250))
     
    	# Display some text
    	font = pygame.font.Font(None, 36)
    	text = font.render("Hello There", 1, (10, 10, 10))
    	textpos = text.get_rect()
    	textpos.centerx = background.get_rect().centerx
    	background.blit(text, textpos)
     
    	# Blit everything to the screen
    	screen.blit(background, (0, 0))
    	pygame.display.flip()
     
    	# Event loop
    	while 1:
    		for event in pygame.event.get():
    			if event.type == QUIT:
    				return
     
    			screen.blit(background, (0, 0))
    			pygame.display.flip()
     
    main()
    Edit: grillé par le responsable

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci _Xaar et Guigui pour vos réponses, c'est déjà encourageant.
    Mais en cas de bug dans mon programme (je ne vois pas comment je ne pourrais pas en faire) comment lire les messages d'erreur pour procéder au debbugage si je dois lancer la fenêtre directement ?
    _Xaar, tu fais comme guigui, tu lance le programme directement ou tu peux le lancer depuis un éditeur de façon à voir s'il y a des erreurs ?

  5. #5
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    regarde ici:
    http://python.developpez.com/faq/?pa...enFermetureDos

    Le problème d'IDLE, c'est qu'il y a une couche de Tkinter qui engendrer des interférences avec le programme exécuté

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Tu peux utiliser un .bat comme indiqué sur la page qu'à donnée Guigui, en cas d'erreur cà te laissera l'erreur en question affichée dans la console (à noter que moi sous 98se je suis obligé de mettre des guillemets autour de c:/python24/python.exe sinon cà ne lance rien).

    Sinon tu a des tas d'éditeurs plus pratiques qu'Idle qui te permettent de binder des commandes sur une touche pour lancer directement ton programme sans passer à chaque fois par l'explorateur, avec pspad j'ai une touche qui lance la commande "C:\Python24\python.exe" "%File%" pour quand je suis sûr qu'il n'y a pas d'erreur (la console se ferme de suite), et une autre touche avec un paramètre en plus "C:\Python24\python.exe" "-i" "%File%" , cà laisse la console ouverte après une erreur pour que je puisse voir le message.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Je vais tester ça mais ça semble bien répondre à mes problèmes.
    Un très grand merci, _Xaar et Guigui et à bientôt peut être

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Compiler] supprimer une fenêtre DOS lors du lancement d'une application
    Par olivier59820 dans le forum MATLAB
    Réponses: 5
    Dernier message: 16/08/2011, 13h30
  2. erreur lors du lancement d'une application vb.net
    Par amarige dans le forum VB.NET
    Réponses: 7
    Dernier message: 05/05/2009, 14h07
  3. Probleme de permissions lors du lancement d'une application
    Par donkeyquote dans le forum Administration système
    Réponses: 1
    Dernier message: 11/10/2008, 13h26
  4. Bug à la création /lancement d'une application
    Par poporiding dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 20/12/2006, 08h56
  5. Erreur lors du lancement d'une application
    Par mouloudéen dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 02h57

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