Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt: un object clickable

Autre qu'un QPushButton

Sujet résolu
    6 août 2008 à 11:10:48

    Slt, je voudrais faire un jeu de cartes. On voit donc son jeu et on peut cliquer sur sa carte. Mais je ne sais pas quel objet créer pour faire une carte... un objet à la fois clickable comme un bouton mais aussi comme une image...

    Quelqu'un saurait-il quel genre d'objet utiliser???

    Merci d'avance!!

    EDIT : Ce qui m'interesserait aussi ça serait que si on agrandit la fenetre, les cartes grandissent de taille aussi... et ne reste pas fixe!!

    Merci!!!
    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2008 à 11:18:41

      Concentre toi sur l'affichage d'image: rendre "clickable" un widget est simple: avec Qt, tu peux récuperer les évènements effectués sur tous les widgets.
      Dans ta classe, il faudra redéfinir les fonctions event.
      Regarde la doc.

      Info: QWidget::QMouseEvent.

      A+
      • Partager sur Facebook
      • Partager sur Twitter
        6 août 2008 à 11:33:12

        OK, merci beaucoup, c'est trés interessant!!!

        Mais une autre petite question! Je n'arrive pas à mettre une image dans un layout... Pourtant quand on fait addWidget, il attends un widget et QImage hérite de QWidget non??

        mon code :

        QGridLayout *LGlobal = new QGridLayout();
        
        Carte_1 = new QImage ("cartes/01.png");
        
        LGlobal->addWidget(Carte_1, 3, 5);
        


        voici l'erreur :

        FenPrincipale.cxx:28: erreur: no matching function for call to «QGridLayout::addWidget(QImage*&, int, int)»
        /usr/include/qt4/QtGui/qgridlayout.h:118: note: candidats sont: void QGridLayout::addWidget(QWidget*)
        /usr/include/qt4/QtGui/qgridlayout.h:119: note:                 void QGridLayout::addWidget(QWidget*, int, int, Qt::Alignment)
        /usr/include/qt4/QtGui/qgridlayout.h:120: note:                 void QGridLayout::addWidget(QWidget*, int, int, int, int, Qt::Alignment)


        merci d'avance!!
        • Partager sur Facebook
        • Partager sur Twitter
          6 août 2008 à 11:37:03

          Tu pourrais faire voir tes déclarations?
          • Partager sur Facebook
          • Partager sur Twitter
            6 août 2008 à 11:42:17

            dans le .h :

            QImage* Carte_1;
            • Partager sur Facebook
            • Partager sur Twitter
              6 août 2008 à 11:58:04

              Remplace:

              LGlobal->addWidget(Conteneur, 3, 5);
              


              Par:
              LGlobal->addWidget(Carte_1, 3, 5);
              


              Edit : tu remplace Conteneur par Carte_1.
              • Partager sur Facebook
              • Partager sur Twitter
                6 août 2008 à 12:03:12

                Excusez moi, c'est que j'ai essayé de passer par un conteneur mais ça n'a pas marché!!! ça ne marche pas avec Carte_1 non plus, c'est juste une erreur en ecrivant le post!!!

                Merci d'avance!!!
                • Partager sur Facebook
                • Partager sur Twitter

                Qt: un object clickable

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown