9 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 662
16 juin 2007 à 23:06
16 juin 2007 à 23:06
Effectivement, faire cohabiter Tkinter et pyGame n'est pas chose facile.
De ce que j'ai pu en voir, les utilisateurs de pyGame laissent généralement tomber totalement tkinter/wxPython/Qt/GTK pour faire entièrement leur interface graphique en pyGame.
Il existe même des librairies pyGame pour simplifier cette tâche.
En Googlant, j'ai trouvé ça:
http://www.pygame.org/wiki/gui
Je cite:
"You already learned using Gtk, Qt, WxWidgets, $(your_toolkit_here) and think of using it? Or - even worse - want to use pygame in your Gtk, Qt, ... application? Drop that idea, it is a bad one. "
De ce que j'ai pu en voir, les utilisateurs de pyGame laissent généralement tomber totalement tkinter/wxPython/Qt/GTK pour faire entièrement leur interface graphique en pyGame.
Il existe même des librairies pyGame pour simplifier cette tâche.
En Googlant, j'ai trouvé ça:
http://www.pygame.org/wiki/gui
Je cite:
"You already learned using Gtk, Qt, WxWidgets, $(your_toolkit_here) and think of using it? Or - even worse - want to use pygame in your Gtk, Qt, ... application? Drop that idea, it is a bad one. "
Dire que j'ai parcouru ce site en long et en large, sans même lire ce passage. Merci , je vais donc utiliser les bibliothèques conseillées, ce sera sûrement moins laborieux que de continuer à cherche vainemment une solution de compatibilité.
Merci encore
Merci encore
Sinon ceci est pas mal si tu souhaite créer un jeu d'après ce que tu as dit :
https://www.rtsoft.com/novashell/
Ca te facilitera la tache tout en te laissant libre ;)
https://www.rtsoft.com/novashell/
Ca te facilitera la tache tout en te laissant libre ;)
C'est sympa de proposer un logiciel tout fait, et c'est sûr qu'à cours terme, ce serait plus efficace, mais je préfère vraiment tout programmer. Y a de grandes chances que j'arrive pas au bout, mais c'est ça le challenge, partir de quasi rien ^^.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne sais pas si tu cherches encore des infos à ce sujet, mais je développe un jeu dans le même genre, sous Pygame et OcempGui, une GUI sous Pygame. Je tiens un journal de mon jeu ici : blog.elderlore.com ; tu peux t'en inspirer autant que tu veux, c'est sous licence GPL v2.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 662
11 déc. 2007 à 09:13
11 déc. 2007 à 09:13
Python et GTK peut aussi être sympa.
Voici un petit tutoriel: http://www.commentcamarche.net/faq/sujet 8014 votre premiere application graphique avec python et glade
GTK a l'avantage d'être portable et relativement saine.
Voici un petit tutoriel: http://www.commentcamarche.net/faq/sujet 8014 votre premiere application graphique avec python et glade
GTK a l'avantage d'être portable et relativement saine.
Effectivement il existe d'autres Gui pour pygame. Mais lorsqu'on manque de temps et qu'il est beaucoup plus simple d'utiliser un gui qu'on connait deja bien, il y a toujours moyen de trouver une solution.
Moi j'utilise pygame avec tkinter et cela ne me pose pas de problème. La plupart du temps, le problème des gens est du à tkinter qui monopolise la boucle principale du programme. Il faut juste se débrouiller pour garder une boucle infinie qui sera appelée par tkinter.
exemple
#ma boucle
def boucle():
if ( fin ):
mon_prog_pygame()
fen.after(10, boucle )
#main
fen = Tk()
fen.after( 10, boucle)
Dans cette exemple, le programme creera une fenetre mais demandera à tkinter d'appeler au bout de 10 ms la fonction boucle(). Or cette même fonction s'appelera de façon récursive toutes les 10ms jusqu'à fin.
La fonction after() de tkinter, place l'appel de notre fonction dans la boucle principale de tkinter. Ainsi tkinter et pygame fonctionnent ensemble. Par contre, il faut faire attention à ne pas prendre un temps de boucle trop court ( <2ms) car sinon, la détection des actions sur les fenêtre sera altérés. Cela est d'autant plus vrai que le prog_pygame() mettra du temps à s'executer.
Moi j'utilise pygame avec tkinter et cela ne me pose pas de problème. La plupart du temps, le problème des gens est du à tkinter qui monopolise la boucle principale du programme. Il faut juste se débrouiller pour garder une boucle infinie qui sera appelée par tkinter.
exemple
#ma boucle
def boucle():
if ( fin ):
mon_prog_pygame()
fen.after(10, boucle )
#main
fen = Tk()
fen.after( 10, boucle)
Dans cette exemple, le programme creera une fenetre mais demandera à tkinter d'appeler au bout de 10 ms la fonction boucle(). Or cette même fonction s'appelera de façon récursive toutes les 10ms jusqu'à fin.
La fonction after() de tkinter, place l'appel de notre fonction dans la boucle principale de tkinter. Ainsi tkinter et pygame fonctionnent ensemble. Par contre, il faut faire attention à ne pas prendre un temps de boucle trop court ( <2ms) car sinon, la détection des actions sur les fenêtre sera altérés. Cela est d'autant plus vrai que le prog_pygame() mettra du temps à s'executer.
L'avantage de Pygame, c'est qu'il gère déjà à travers SDL toutes les fonctions multimédia dont on a besoin pour faire un jeu vidéo. L'inconvénient, c'est qu'il est fortement déconseillé d'utiliser une GUI Python avec. Heureusement des GUI spécifiques pour Pygame existent : http://www.pygame.org/tags/gui