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 :

Sélection d'un QPixmap


Sujet :

PyQt Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Par défaut Sélection d'un QPixmap
    bonjour,
    je suis débutant avec PyQt qui me donne pas mal de file a retordre,
    je suis entrain de crée un backgammon pour un projet informatique
    j'aimerais pouvoir sélectionner un pion en cliquant dessus et par exemple l'agrandir ou le coloré pour savoir qu'il est sélectionner
    ce pion se présente sous la forme d'un QGraphicsPixmapItem
    je met ci-dessous le code que j'ai essayé mais qui ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                p = (QtGui.QGraphicsPixmapItem(QtGui.QPixmap("pion2.png")))
                p.isActive()
                p.acceptedMouseButtons()
                p.mousePressEvent(QtGui.QGraphicsSceneMouseEvent)
                self.scene.addItem(p)
     
        def mousePressEvent(self, event):
            print("appui souris")

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                p.mousePressEvent(QtGui.QGraphicsSceneMouseEvent)
     
        def mousePressEvent(self, event):
    Quel rapport ?

    Le premier mousePressEvent est celui du pion et celui de la fonction est une méthode de la classe où tu implémentes ceci. Aucun rapport entre les deux.

    Si tu veux agir librement sur les pions de ton jeu, les sélectionner, redimensionner, déplacer et capter touts les events qui les concernent, alors sous-classe les.

    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
     
    class Pion(QtWidgets.QGraphicsPixmapItem):
        def __init__(self, image):
            super().__init__()
            pix = QtGui.QPixmap(image)
            self.setPixmap(pix)
            self.setFlags(QtWidgets.QGraphicsItem.ItemIsSelectable)
            self.setTransformationMode(QtCore.Qt.SmoothTransformation)
            self.setAcceptHoverEvents(True)
            ... autres attributs
     
        def get_size(self):
            """Retourne les dimensions de l'objet"""
            return (self.boundingRect().width(), self.boundingRect().height())
     
        def get_pos(self):
            """Retourne la position actuelle dans la scene"""
            return (self.boundingRect().left(), self.boundingRect().top())
     
        def mousePressEvent(self, event):
            """Ici pour le click"""
            if event.button() == 1:
                etc...
     
        def hoverEnterEvent(self, event):
            """Survol de la souris"""
     
        def hoverLeaveEvent(self, event):
            """Fin de survol de la souris"""
     
        def contextMenuEvent(self, event):
            """Menu contextuel"""
     
        etc...
    Tu verras les nombreuses possibilités que cela apporte.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Par défaut
    salut merci beaucoup de ton aide ça me clarifie un peu les idées car comme tu as pus le voir je partait dans tout les sens
    par contre j'ai oublier de préciser que je bossais sous pyqt4 du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (QtWidgets.QGraphicsPixmapItem)
     et 
    QtWidgets.QGraphicsItem.ItemIsSelectable
    ne sont pas valide je pense qu'il suffit de remplacer QtWidgets par QTGUI comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Pion(QtGui.QGraphicsPixmapItem):
    et 
    self.setFlags(QtGui.QGraphicsItem.ItemIsSelectable)
    mais pas sur en tout cas ca marche merci mille fois

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

Discussions similaires

  1. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  2. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36
  3. Sélection texte d'un TMemo
    Par nmathon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/05/2003, 16h17
  4. Couleur de sélection par défaut
    Par sicard_51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/04/2003, 23h35
  5. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57

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