Bonjour,
je travail sur un projet utilisant Qt pour creer un Wizard.
Je voudrais creer un set de QPageWizard à l'aide de l'outil QtDesigner et les réutiliser ensuite dans une classe héritant de Qwizard que j'ai creer (sans utiliser l'outil designer).
En particulier j'ai besoin de connecter des signaux provenant des éléments des pages de mon Wizard à des slots définie dans mon Wizard (car utilisant des attributs définie dans le Wizard dont j'aurai besoin pour toutes les pages, j'espère que c'est suffisament clair)
Mon problème : à la compilation j'obtiens les erreures suivantes :
invalid use of incomplete type ‘struct Ui::IntroPage’|
forward declaration of ‘struct Ui::IntroPage’|
||=== Build finished: 2 errors, 0 warnings ===|
voilà les différents bouts de code que j'utilise :
Wizard.h
Wizard.cpp
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
18
19 #ifndefine ...blabla #include "IntroPage.h" #include <QtGui> class Wizard : public QWizard { Q_OBJECT public: explicit Wizard(QWidget *parent = 0); protected slots: void parcourirCliked(); ... }; #endif
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
18 #include "Wizard.h" #include "IntroPage.h" Wizard::Wizard(QWidget *parent) : QWizard(parent), d(new WizardData), introPage(new IntroPage), { ... setOption(NoCancelButton); setOption(NoBackButtonOnStartPage); setOption(HaveHelpButton); addPage(introPage); ... QObject::connect(introPage->ui->parcourirButton, SIGNAL(cliked()), this, SLOT(parcourirCliked())); ... }
IntroPage.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
18
19
20 #ifndef IntroPage_H #define IntroPage_H #include <QtGui> namespace Ui { class IntroPage; } class IntroPage : public QWizardPage { Q_OBJECT public: explicit IntroPage(QWizardPage *parent = 0); Ui::IntroPage *ui; }; #endif // IntroPage_H
et IntroPage.cpp
Le problème viens clairement de mon connect, je ne sais pas acceder à mon bouton parcourirButton creer avec QtDesigner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include "IntroPage.h" #include "ui_IntroPage.h" IntroPage::IntroPage(QWizardPage *parent) : QWizardPage(parent), ui(new Ui::IntroPage) { ui->setupUi(this); }.
En fait je ne sais pas comment acceder aux objets définis dans le fichier ui_IntroPage.h
Est ce que c'est simplement impossible tel que je m'y prend?? Est ce que le problème viens du fait que ces objets n'existent pas tant que la fonction setupUI() n'a pas été appelée?
Après qulelque recherche sur le web, j'ai l'impression que je pourrais peut être m'en sortir avec des déclarations de classes anticipées, je me trompe ?
Je précise que je ne programme pas beaucoup et que c'est la premiere fois que je me lance dans un projet aussi "gros". ne soyez pas trop sévère avec moi si j'ai fait des bétises SVP, je vous promet j'ai fait des recherches avant de poster.
Merci,
René-paul.
Partager