IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

[Qt Creator] Paramètres du constructeur de la classe MainWindow

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [Qt Creator] Paramètres du constructeur de la classe MainWindow
    Bonjour,

    J'ai par moi-même déplacé ce post que j'ai jugé flood compte tenu du topic.

    Pardonnez mon intrusion mais j'aimerais comprendre cette histoire avec le MainWindow une fois pour toutes mdr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
     
    }
    : on implémente donc le constructeur de la classe MainWindow...
    D'un autre côté on a aussi le prototype de QMainWindow :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QMainWindow ( QWidget * parent = 0, Qt::WindowFlags flags = 0 )
    Si on regarde le "1er encart de code", parent pointe vers rien alors pourquoi on le fait passer en paramètre avec le QMainWindow lors de l'implémentation du constructeur de MainWindow ? Cette histoire me paraît bien compliquée...

    Quand vous dites que la classe MainWindow affiche des widgets en plus de QMainWindow, QMainWindow peut en faire autant si le pointeur parent ne pointait pas vers rien ? C'est là où je coince.

    Quand vous dites qu'
    On peut également fournir un objet parent à cette classe QMainWindow
    : c'est au premier paramètre parent ?

    Je sais que ça fait beaucoup de questions... Aussi je ne voudrais pas abuser.

    Merci d'avance. Bionne journée à vous.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je pensais que la réponse vous avez été donné et du coup, je ne sais plus trop quoi rajouter.
    Il faut savoir, que l'on passe un parent ou non à une classe, n'a pas beaucoup de différence. Comme l'avez dit gbdivers, ce système permet surtout une bonne gestion de la mémoire.
    Effectivement, si la toute première classe (en haut de la hiérarchie, la classe parente de toutes les autres (directement ou indirectement (grand parent)), lors de sa destruction, va détruire tout ses enfants (et les petits enfants) ainsi de suite.
    Si une classe n'a pas de parent, il faudra faire la destruction par vous même (delete ...)

    Après, l'histoire entre QMainWindow et MainWindow est que MainWindow hérite de QMainWindow afin d'étendre les fonctionnalités de QMainWindow. À la base (comme Qt le définit) QMainWindow, n'affiche juste une fenêtre vide.
    Souvent, das notre MainWindow (qui est entièrement paramétable, car c'est notre code), cela affiche une fenêtre vide (toujours, car MainWindow est une QMainWindow) mais on peut tout aussi bien avoir rajouter des Widget / QLineEdit / QLabel et autre.
    Tout cela, car dans la classe de MainWindow, nous aurons déclaré des QLabel / QLineEdit (et dont nous gérons leurs vies dans la classe de MainWindow)

    Quand vous dites qu'
    On peut également fournir un objet parent à cette classe QMainWindow
    : c'est au premier paramètre parent ?
    Oui. Si on veut donner un parent à QMainWindow, nous passons un pointeur sur ce parent lors de la construction de QMainWindow.

    Je sais que ça fait beaucoup de questions... Aussi je ne voudrais pas abuser.
    Vous pouvez abuser autant que vous voulez, comme dirait Emmanuel Deloget:
    Ce forum s'use si on ne l'utilise pas.
    Voir aussi les tutoriels et cours de formation pour bien apprendre Qt : http://qt.developpez.com/tutoriels/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Merci à vous.
    Non mais c'est vrai que ça n'est pas une notion toujours évidente à comprendre, surtout quand c'est du "Qt particulier à Qt Creator"
    Aussi si vous connaissez des sites ou tutos qui expliquent cela n'hésitez pas... Sinon on m'a déjà donné des tutos que j'ai déjà commencé à regarder mais c'est long... En plus avec le travail ça n'est pas toujours évident de trouver le temps nécessaire.

    Merci à vous pour toutes vos explications. J'aime bien Qt en tout cas j'ai été séduit par la simoicité de sa programmation.

    A bientôt. Cordialement, Gizmo.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Citation Envoyé par gizmo27 Voir le message
    Bonsoir,
    Merci à vous.
    Non mais c'est vrai que ça n'est pas une notion toujours évidente à comprendre, surtout quand c'est du "Qt particulier à Qt Creator"
    Aussi si vous connaissez des sites ou tutos qui expliquent cela n'hésitez pas... Sinon on m'a déjà donné des tutos que j'ai déjà commencé à regarder mais c'est long... En plus avec le travail ça n'est pas toujours évident de trouver le temps nécessaire.

    Merci à vous pour toutes vos explications. J'aime bien Qt en tout cas j'ai été séduit par la simoicité de sa programmation.

    A bientôt. Cordialement, Gizmo.
    C'est juste que j'ai répéter ce qui a été dit sur l'autre post.
    Maintenant, je crois que c'est en même un problème de C++ que vous avez. Du coup, je vous conseillerai de lire un cours de C++, et ensuite les cours de Qt (les deux sont trouvable sur ce site)

    De plus, il n'y a rien de spécifique à "Qt Creator" comme vous dites. Ce n'est que du code C++ comme nous pouvons en voir partout ailleurs. Il y a juste ce design qui se base sur une hiérarchie parent - enfant qui es "spécifique" à Qt (et encore, cela est utilisé dans d'autres bibliothèques)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Invité
    Invité(e)
    Par défaut
    La POO ça n'est pas si facil que ça : même en regardant les tutos. Dire que je me riais de ça au début, mais j'ai commencé à trembler dès que j'ai commencé à écrire des lignes de code. Comme quoi on ne s'improvise par programmeur du jour au lendemain.
    Je sais que c'est limites hors-sujet mais j'avais besoin de parler de mon ressenti même si tout le monde s'en fiche.
    Bonne journée à vous Mesdames, Mesdemoiselles, Messieurs.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Citation Envoyé par gizmo27 Voir le message
    La POO ça n'est pas si facil que ça : même en regardant les tutos. Dire que je me riais de ça au début, mais j'ai commencé à trembler dès que j'ai commencé à écrire des lignes de code. Comme quoi on ne s'improvise par programmeur du jour au lendemain.
    Je sais que c'est limites hors-sujet mais j'avais besoin de parler de mon ressenti même si tout le monde s'en fiche.
    Bonne journée à vous Mesdames, Mesdemoiselles, Messieurs.
    Personnellement, la POO ... j'y arrive pas encore parfaitement
    Mais sinon ... je pense que ce principe de passer le pointeur de la classe parent a l'objet (sans notion d'heritage) peut etre applique a du C (qui n'est donc pas POO)
    Mais je vous conseille de passer maintenant a autre chose, et avec le temps, vous comprendrai les consequences de ce design
    (C'est en programmant que l'on devient programmeur)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/02/2015, 01h20
  2. Réponses: 15
    Dernier message: 07/06/2011, 22h42
  3. Réponses: 7
    Dernier message: 12/05/2010, 14h00
  4. Réponses: 9
    Dernier message: 04/11/2008, 18h05
  5. [Language]constructeur de sous classes
    Par seb888 dans le forum Langage
    Réponses: 12
    Dernier message: 04/06/2005, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo