Bonjour,

En formation, on apprends python. J'ai donc voulu faire un morpion avec une IHM sur QT (pyqt).

- Le morpion fonctionne parfaitement en CMD (2 joueurs).
- J'ai fais l'IHM et maintenant j'essaye de la connecter au script python.

C'est là que les problèmes commencent :

QML -> J'ai 2 pages : [Sélection nombre joueur; main.qml] et [grille de jeu; plateau.qml]

Sur la page de selection lorsque l'on click sur le bouton [2 joueurs]; python réceptionne le signal QML et lance le script avec 2 joueurs.
Je ne sais pas si c'est la bonne maniere de faire mais dans le fichier context je prend le signal et je crée l'instance du Morpion avec puis je lance le jeu :

Python
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
    @pyqtSlot(int)                                                        
    def nbrJoueurQML( self, nbrJoueurQML):   # **** startGame ****
        # simplement lancer l'invocation avec le retour nbrjoueurQML
        myGame = Morpion(nbrJoueurQML)
        myGame.gestionJoueurs()
Le script se lance bien et je peux finir de jouer a la console.

Le problème c'est que dès que je demande a QML de changer de fenêtre en même temps qu'il lance le script, cela ne fonctionne plus comme il faut.

Le click sur le bouton lance le script du morpion et la fenêtre QML freeze "ne répond plus" tant que la partie n'est pas finis en console;
dès que la partie en console est terminé, le changement de fenêtre s'effectue.
Je suis bloqué dessus depuis plus d'une semaine et je ne comprend pas pourquoi cela fait ça.
Surtout que j'ai mis l'ordre de changement de fenêtre avant d'envoyer un signal a python donc en théorie il devrait au moins changer de fenêtre avant de lancer le script ?

Voici l'action du bouton/mouse_area dans QT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
                    onClicked: {
                         pageLoader.visible = true                     // Formateur
                        //pageLoader.source = "plateau.qml"              // INI
                        Context.nbrJoueurQML(2)                        // doActionInPython
J'ai essayer de charger une deuxieme page -> échec
J'ai essayer de n'avoir qu'une page en switchant l'état des éléments visible/invisible -> échec

Si j’enlève le signal python, le changement de fenêtre se fait sans aucun problème.

Une idée d'où ça peut venir ou d'où trouver de l'aide ?

Même si ce n'est pas le but ici, ça doit bien être possible de gérer une ihm pour par exemple visionner quelque chose pendant qu'on utilise le script dans la console, non?
Merci