Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fermeture fenêtre dans bibliothèque graphique #13

Open
byache opened this issue Feb 3, 2019 · 3 comments
Open

fermeture fenêtre dans bibliothèque graphique #13

byache opened this issue Feb 3, 2019 · 3 comments

Comments

@byache
Copy link
Collaborator

byache commented Feb 3, 2019

Dans "demande_evenements()", la modif suivante permet non pas d'arrêter le programme, mais de réellment fermer la fenetre.

if event.type == pygame.QUIT:
#sys.exit()
pygame.display.quit()

je trouve cela préférable.
Par ailleurs, ce serait bien d'ajouter trois boutons : un "pause", un "avance d'une itération" et un "play".
Pour quand on aura le temps...

@byache
Copy link
Collaborator Author

byache commented Feb 4, 2019

Au lycée, (donc avec "sys.exit()" je pense) :
je fais une boucle for avec un sleep dedans.

  • si je clique sur la croix rouge de fermeture fenêtre pendant la boucle for, la fenêtre se ferme
  • si par contre je clique après la fin de la boucle for, il y a un plantage

@cspaier
Copy link
Collaborator

cspaier commented Feb 17, 2019

Oui, la gestion de fermeture de fenêtre n'est pas idéale.

Si tu peux tester pygame.display.quit() sur windows et Unix et que ca fonctionne, hésite pas à modifier.

Je pensais renvoyer un évènement quit dans la sortie de demande_evenements():

for event in pygame.event.get():
        if event.type == pygame.QUIT:
            evenements["quit"] = None

Comme ca on peut faire proprement:

quit = False
while not quit:
    evenements = demande_evenements()
    if "quit" in evenements:
        quit = True

Par contre j'ai peur que ca complique l'utilisation pour les élèves. A discuter.

Par rapport au boutons pause, play... c'est une bonne idée qui mérite sa propre issue.

@cspaier
Copy link
Collaborator

cspaier commented Feb 17, 2019

Sinon par rapport à la fenêtre qui ne se ferme pas, ca fera pareil qu'on utilise pygame.display.quit() ou
sys.exit().

En effet, la fermeture a lieu dans demande_evenements(). Donc si on est plus dans la boucle qui appelle demande_evenements(), il ne se passe rien.

Dans le cas où on utilise une boucle for, je ne vois pas comment gérer la fermeture de la fenêtre. On peut écrire une fonction ferme_fenetre() mais on ne pourra pas l'appeler au click sur la croix.

@cspaier cspaier transferred this issue from Pydiderot/pydiderotIDE Nov 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants