Bonjour,
Je vais poser une question plus en rapport avec l'architecture objet en C++ que Qt lui-même mais je traite aussi des fichiers ui.
J'ai une classe Grille, exécutée lors d'un clic, héritée de QDialog.
Je voulais créer une hiérarchie de classe car j'ai plusieurs boutons qui instanciaient cette classe (contenant un classe ui) mais au final, je préfère factoriser le code car les comportements et options des différentes boites de dialogues sont différentes.
Grille est devenue une classe abstraite et j'ai une (mais d'autres viendront) GrilleFille qui redéfinit certaines méthodes. Mais l'ui et les principales fonctions sont définies dans Grille.
J'ai réussi à compiler tout ca, mais à l’exécution ca crash (à cause de mon pointeur ?).
Le code qui appelle
Grille.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Grille* gwindow; //est un attribut de classe GrilleFille *g = dynamic_cast<GrilleFille*>(gwindow); //pointeur dynamique int response = g->exec(); //Exécuter la boite de dialogue
GrilleFille.h
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 class Grille : public QDialog { Q_OBJECT public: explicit Grille(QWidget *parent = 0, QString homepath = ""); virtual ~Grille(); virtual QImage algo() = 0; protected: Ui::Grille *ui; //mon ui GrilleAlgo *galgo; //d'autres attributs... protected slots: //des slots... };
Merci pour votre réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class GrilleFille : public Grille { public: explicit GrilleFille(QWidget *parent = 0, QString homepath = ""); virtual QImage algo(); //redéfinition des fonctions virtuelles };![]()
Partager