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
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
Normalement il faudrait un objet MainWindow dans la classe smallEditorWindow
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

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;
}
Le problème:
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
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
fichier .cpp
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");
}
Toutes les autres commandes partent de MainWindow vers les autres classes,
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