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

PyQt Python Discussion :

Jeu demineur PyQt5


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Demandeur d'emploi
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Jeu demineur PyQt5
    Bonjour, je souhaite réaliser le jeu Démineur la seul chose qui me bloque, c'est de bloquer le clic opposer.
    je m'explique, un exemple je clic droit, il affiche le drapeau et il interdit (bloque) le clic gauche, si je clic de nouveau a droite le drapeau s'enlève et maintenant le clic gauche est débloquer.
    Idem pour le clic gauche

    Voici une démo de mon code (créer sur Designer puis passer par le script : pyuic5 Demo.ui -o Demo.py ) :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    # -*- coding: utf-8 -*-
     
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    from sys import *
     
    class Ui_Form(object):
        def BtnCD(self):
            if self.drap:
                self.pushButton.setIcon(QIcon(''))  
                self.drap = False
            else:
                self.pushButton.setIcon(QIcon('./Images/drap.png'))    
                self.pushButton.setIconSize(QSize(80, 80))
                self.drap = True
     
        def BtnCG(self):
            if self.mine:
                self.pushButton.setIcon(QIcon(''))    
                self.mine = False
            else:
                self.pushButton.setIcon(QIcon('./Images/mine.png'))    
                self.pushButton.setIconSize(QSize(80, 80))
                self.mine = True   
     
        def setupUi(self, Form):
            #region Form
            Form.setObjectName("Form")
            Form.resize(100, 100)
            #endregion
     
            #region variables
            self.drap = False
            self.mine = False
            #endregion
     
            #region PushButton
            self.pushButton = QPushButton(Form)
            self.pushButton.setGeometry(QRect(10, 10, 80, 80))
            self.pushButton.setText("")
            self.pushButton.setObjectName("pushButton")       
            self.pushButton.setContextMenuPolicy(Qt.CustomContextMenu)
            self.pushButton.customContextMenuRequested.connect(self.BtnCD)
            self.pushButton.clicked.connect(self.BtnCG)
            #endregion
     
            self.retranslateUi(Form)
            QMetaObject.connectSlotsByName(Form)
     
        def retranslateUi(self, Form):
            _translate = QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "Demo"))
     
     
    if __name__ == "__main__":
        app = QApplication(argv)
        Form = QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        exit(app.exec_())
    Merci d'avance.

  2. #2
    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,

    Et comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        def BtnCG(self):
            if not self.flag:
                if self.mine:
                    ...
                else:
                   ....
    non ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Demandeur d'emploi
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Jeu demineur PyQt5
    Bonjour et merci pour votre réponse.
    je me doutais que c’était un peu cela, mais cela ne désactive pas le clic gauche.
    c’était ma question.
    merci d'avance.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 938
    Points : 7 347
    Points
    7 347
    Par défaut
    Citation Envoyé par Yanss49 Voir le message
    je me doutais que c’était un peu cela, mais cela ne désactive pas le clic gauche.
    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
    class Ui_Form(object):
        # ...
     
        def BtnCD(self):
            if self.drap:
                self.pushButton.setIcon(QIcon(''))  
                self.drap = False
                self.pushButton.clicked.connect(self.BtnCG)
            else:
                self.pushButton.setIcon(QIcon('./Images/drap.png'))    
                self.pushButton.setIconSize(QSize(80, 80))
                self.drap = True
                self.pushButton.clicked.disconnect(self.BtnCG)
     
        def BtnCG(self):
            if not self.drap:
                if self.mine:
                    self.pushButton.setIcon(QIcon(''))    
                    self.mine = False
                else:
                    self.pushButton.setIcon(QIcon('./Images/mine.png'))    
                    self.pushButton.setIconSize(QSize(80, 80))
                    self.mine = True   
     
        # ...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Demandeur d'emploi
    Inscrit en
    Octobre 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Octobre 2018
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Jeu demineur PyQt5
    Bonjour, merci pour ta réponse.

Discussions similaires

  1. Programmer le jeu Démineur avec pharo
    Par bryanmohamet dans le forum Smalltalk
    Réponses: 7
    Dernier message: 06/04/2017, 16h30
  2. Algorithme de jeu Démineur
    Par hamdibena dans le forum Débuter
    Réponses: 12
    Dernier message: 29/01/2013, 20h18
  3. Problème jeu Démineur
    Par Silvering dans le forum Débuter
    Réponses: 4
    Dernier message: 29/05/2011, 17h29
  4. probleme avec jeu démineur
    Par wokba dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 16/01/2008, 19h18

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