Partage
  • Partager sur Facebook
  • Partager sur Twitter

SIGNAL et SLOT

et 1 autre question sur Qt

Sujet résolu
    5 décembre 2007 à 19:53:08

    Bonsoir tout le monde, je suis entrain d'apprendre à me servir de la bibliothèque Qt en lisant la documentation officielle et j'ai rencontré un problême lors de la création de mes propres slots : la connection entre les signaux (clicked(), triggered(),...) et mes slots ne fonctionne pas.

    Y a t'il des choses spécifiques à faire lors de la création des slots ?

    J'ai encore une deuxième question :

    1. #ifndef MAINWINDOW_H
    2.  #define MAINWINDOW_H
    3.  #include <QMainWindow>
    4.  class QAction;
    5.  class QMenu;
    6.  class QTextEdit;
    7.  class MainWindow : public QMainWindow
    8.  {
    9.      Q_OBJECT
    10.  public:
    11.      MainWindow();


    Dans la portion de code ci dessu, Trolltech a mis la ligne Q_OBJECT juste avant le constructeur ainsi que les lignes class QAction; class QMenu; et classe QTextEdit;

    A quoi servent au juste ces lignes ?

    Merci pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2007 à 20:17:48

      Q8OBJECT est une macro ... les autres lignes ... servent a definir sommairement des classes qui seront définie plus exhaustivement dans un autre .h , ceci permet d'utiliser ces classes dans ta classe ... pour régler des problèmes du au classes ayant chacune besoin de l'autre ... ( ca doit pas etre clair ... quelqu'un saura surement mieux te repondre que moi)

      pour tes problemes de signaux ... question bete ... tu as bien fait gaffe a la casse ?

      et sinon , tu as bien recompilé un .moc ? (j'oubliais tout le temps de le faire ^^)
      • Partager sur Facebook
      • Partager sur Twitter
        5 décembre 2007 à 20:31:42

        Ok, donc Q_OBJECT est une macro, alors pourquoi la compilation plante lorsque j'inclus cette macro dans la définition de ma classe ? Et elle sert à quoi cette macro ? Lorsque je compile il y a énormement d'erreur du type :
        [Linker Error] undefined reference to 'Fenetre::staticMetaObject'

        Comme je débute je ne sais pas à quelle casse faire attention, j'ai simplement fais les tutos de trolltech jusqu'au n°5 puis je suis allé dans les éxemples et j'ai recopié des morceaux de code (en les analysant pour les comprendre).

        Je ne sais non plus pas ce que c'est que la compilation moc et comment la faire.
        • Partager sur Facebook
        • Partager sur Twitter
          5 décembre 2007 à 21:12:19

          Et si tu faisais comme expliqué dans n'importe quel tuto :
          qmake -project
          qmake
          make
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2007 à 18:51:19

            Merci Alp, je viens de le faire comme tu l'as dit et la c'est passé sans problême. Et merci à toi aussi Dakeyras Khan pour tes éxplications.
            • Partager sur Facebook
            • Partager sur Twitter

            SIGNAL et SLOT

            × 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