Bonjour,
Je débute avec Qt
J'ai déjà réussit à passer des valeurs d' une classe vers une autre, mais ici
je suis vraiment bloqué.
A partir de class smallEditorWindow je veux passer les valeurs ( int) générées par des
boutons vers class MainWindow
Voici le schéma de mon programme
fichier.h
Normalement il faudrait un objet MainWindow dans la classe smallEditorWindow
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "mainwindow.h" class smallEditorWindow : public QDialog { Q_OBJECT public: smallEditorWindow(); private: QPushButton *m_boutonUn; // pour envoyer un valeur vers MainWindow QPushButton *m_boutonDeux; int m_touche; MainWindow *m_wind; // refusé à la compilation !!!! };#endif
Malheureusement le compilateur n' accepte pas cet objet
Voici le message d' erreur à la compilation:
erreur : 'MainWindow' does not name a type
MainWindow *m_wind;
fichier.cpp
Le problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include "smalleditorwindow.h" smallEditorWindow:: smallEditorWindow(){ connect(m_boutonUn,SIGNAL(clicked()),this, SLOT(setTouche1())); connect(m_boutonDeux,SIGNAL(clicked()),this,SLOT(setTouche2())); } //Jusque là cela fonctionne, les valeurs sont bien transmises à m_touche void smallEditorWindow::setTouche1(){ m_touche = 1; } void smallEditorWindow::setTouche2(){ m_touche = 2; }
Je voudrais que chaque fois que m_boutonUn ou m_boutonDeux est cliqué, la valeur de (int) m_touche
soit transmise à la fonction MainWindow :: setEditor(int v)
Voici la classe qui doit recevoir la valeur des boutons. Là il faut trouver une soluton!
fichier.h
fichier .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include "smalleditorwindow.h" class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); void setEditor(int);// accesseur pour récupérer l' action d' un bouton dans la classe // smallEditor Window private: smallEditorWindow *m_small; };#endif
Toutes les autres commandes partent de MainWindow vers les autres classes,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "mainwindow.h" MainWindow::MainWindow() { } //Ici on affiche dans l' editeur le texte de MainWindow "1" ou "2" à chaque click sur boutonUn //ou boutonDeux dans la classe smallEditorWindow void MainWindow::setEditor(int v){ if( v==1)textEdit->insertPlainText("1"); if( v==2)textEdit->insertPlainText("2"); }
je ne sais donc pas inverser les includes.
Que faire pour que cela fonctionne normalement ?
Un grand merci à celui qui pourra faire le pont entre ces deux classes
Partager