Bonjour,
Je m'étais promis de ne pas poser beaucoup de question.
C'est pourquoi je vous demanderai ici de ne pas m'apporter la réponse brute, mais de me donne quelques pistes de réflexion, si possible une méthode pour résoudre les problèmes par moi-même, voire même me conseiller par exemple des petits exercices adéquat pour bien comprendre et manier les classes si ça ne gêne pas bien sûr.
Car je compte réellement trouver les chose par moi-même.
Mon petit souci est le suivant : une fenêtre avec pour nom d'objet "MainwindowClass" déclarée là-dedans, au début à l'intérieur d'un namespace dans le fichier mainwindow.h :maintenant dans l'autre fichier mainwindow.cpp je définis la fonction suivante en signal :
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 namespace Ui { class MainWindowClass; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindowClass *ui; private slots: void on_lineEdit_textEdited(const QString ); void on_pushButton_2_pressed();
J'applique la fonction close() à l'objet MainWindowClass (je sais que c'est ce nom là car Qt Creator me le dit), comme j'ai vu dans les tutos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "mainwindow.h" #include "ui_mainwindow.h" (...) void MainWindow::on_pushButton_2_pressed() { MainWindowClass.close(); }
Et là l'ordinateur m'insulte en me disant que MainWindowClass n'est pas déclaré : je lui réponds "je regrette Mr l'ordi mais MainWindowClass est bien déclaré dans les fichiers d'entête (voir 2 1ères lignes de mainwindow.cpp)".
A force d'insister il s'entêtait (comme les fichiers) à me répondre toujours pareil (ça n'a pas été faute d'insister). Après je suis parti et s'on s'est fait la tête toute la nuit :p
Bref je me suis dis 3 choses :
=> peut-être est-ce un problème d'encapsulation et que MainWindowClass est private donc on ne touche pas
=> peut-être qu'un objet peut être lui-même une classe qui comporte d'autres sous-classes et donc la syntaxeest interdite (mais c'est moi qui l'ai inventé par contre )
Code : Sélectionner tout - Visualiser dans une fenêtre à part objet.action();
=> peut-être que je n'ai pas assez dormi cette nuit pour dire toutes ces bêtises
Qu'en pensez-vous docteur ? Ca se soigne ?
Merci bonne journée.
Cordialement,
Gizmo.
Partager