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

Qt Discussion :

Fonctionnement interne de Qt


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut Fonctionnement interne de Qt
    Bonjour a tous !

    Il y a énormément de documentation sur comment utiliser Qt mais rien sur comment Qt fonctionne sous le capot.

    Est-ce que l’un d’entre vous aurait des informations (lien hypertexte, livre, conférence, n’importe quoi) qui pourrait m’indiquer comment Qt fonctionne sous le capot.

    Est-ce qu’il calcule tous les pixels de la fenêtre via CPU ? Comment est structurée la hiérarchie de widget a l’écran ? En fait, j’aimerais avoir une vision générale de comment fonctionne le framework, pas de comment on l’utilise.

    Merci d’avance !

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Une grosse partie de Qt concerne les méta-objets, tu peux jeter un coup d'œil à https://louis-du-verdier.developpez.com/qt/fondations/, par exemple.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 122
    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 122
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    On peut aussi tenter l'approche "code source", vu que le code source est disponible. Suffit de se faire une application simple pour tester tel ou tel point de Qt et de plonger dans le code source (à renfort de débogage pas à pas).
    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.

  4. #4
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Merci pour vos réponses, je viens de lire l’article sur les QObject/moc/méta-objets/etc et il est très intéressant, j’ai beaucoup appris !

    Mais il ne répond pas à ma question :

    Comment Qt gère l’affichage.

    Pour ce qui est du code source, j’ai regardé un peu, mais je n’ai trouvé aucune piste à partir de laquelle creuser. Si l’un d’entre vous aurait la possibilité de m’aiguiller vers des fonctions clefs dans l’affichage de Qt, cela serait un bon début.

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Narann Voir le message
    Comment Qt gère l’affichage.
    Au risque de te paraître (très) brutal, si tu en est encore à poser la question, et surtout sous la forme présente, c'est que la réponse n'aura aucun intérêt pour toi.

    Je m'explique:

    Qt est un projet qui permet à un développeur débutant de l'utiliser "facilement", mais qui met en oeuvre (en interne) des techniques particulièrement complexes.

    Je pourrais donc répondre à ta question en te faisant remarquer que ta question n'est pas assez précise, car la manière de gérer l'affichage dépend du système d'exploitation, et en t'indiquant que Qt fait un usage massif du pimple idiom et même t'expliquer à quoi ressemble cet idiome, mais cela ne servirait sans doute à rien :

    Tu comprendrais sans doute la technique, je ne doute pas trop de ce fait. Et puis quoi Tu aurais appris une technique dont tu n'auras de toutes manières aucun besoin avant d'avoir gagné pas mal d'expérience et qui ne facilitera pas ton utilisation de Qt au jour le jour

    De toutes manières, Qt est suffisamment bien foutu pour que ces "foutus détails d'implémentations" n'aient aucune espèce d'intérêt dans le cadre de son utilisation "au jour le jour".

    Le seul cas dans lequel ils commenceraient éventuellement à avoir un intérêt quelconque serait ... que tu veuilles participer au développement du coeur même du framework, de la partie strictement spécifique à un système d'exploitation donné.

    Mais le fait est que, avant de pouvoir envisager une telle participation, il faudra déjà que tu aies acquis non seulement une maîtrise importante du C++ en tant que langage, mais aussi une maîtrise importante de Qt en tant que framework (et, sans doute, une certaine maîtrise du système d'affichage pour le système d'exploitation visé). Et, quand tu auras acquis ces maîtrises, tu te rendras compte que ... tu connais déjà la réponse, et que ta question manquait effectivement de précision...

    Du moins, si tu te souvient, à ce moment là, d'avoir initié une discussion sur le sujet "à tes tous débuts".

    Il ne faut surtout pas prendre cette remarque pour une attaque personnelle, car elle ne veut sûrement pas en être une. Elle veut juste être un rappel sensé du fait qu'il faut savoir marcher avant de vouloir courir, du fait que C++ est un langage des plus complexes, et du fait que Qt est lui aussi un projet particulièrement complexe.

    Or, ces trois faits mis ensembles font que "certaines choses" ne pourront arriver, et avoir une réelle chance d'être comprises que ... quand le moment sera venu, quand les circonstances feront que "tout s'emboîte naturellement".

    Je n'émets absolument aucun doute quant au fait qu'il y aura un moment où "tout s’emboîtera" pour toi. Je dis juste qu'il faudra patienter jusqu'à ce que cela t'arrive
    Pour ce qui est du code source, j’ai regardé un peu, mais je n’ai trouvé aucune piste à partir de laquelle creuser. Si l’un d’entre vous aurait la possibilité de m’aiguiller vers des fonctions clefs dans l’affichage de Qt, cela serait un bon début.
    Si tu tiens à te faire une idée du fonctionnement interne, commence déjà par aller voir du coté des fichiers *.cpp qui se trouvent dans le dossier qtbase/src/corelib/kernel.

    Mais je maintiens que ce n'est sans doute pas pour toi "dans l'immédiat".
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre confirmé Avatar de Narann
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par défaut
    Bonjour et merci d’avoir pris le temps de répondre.

    Vous vous méprenez sur mon expérience et mes compétences.

    Ma question est d’ordre culturelle. J’aime bien comprendre comment les choses que j’utilise au quotidien fonctionnent. J’ai énormément utilisé Qt sans trop savoir quel mécanisme/idiome/modèle il utilise pour gérer (au sens « management ») l’affichage des widgets (je sais comment Qt gère les widgets, mais pas comment il les affiche, et je sais que c’est pas via le GPU)

    J’aimerais comprendre comment fonctionne (au sens « se gère ») l’affichage des différents frameworks (fltk/wxWidget/Qt). Est-ce qu’il utilise tous une approche similaire, etc.

    Merci de m’avoir pointé qtbase/src/corelib/kernel. Je vais creuser un peu la dedans !

    Pour spécifier un peu la question :

    Je sais ce qui se passe au niveau de la hiérarchie des widgets, de la gestion de la mémoire, j’ai une bonne connaissance en GPU et quelques notions de X. Mais j’ai un gap entre la partie « widget structurés » et comment Qt « dessine les widgets ». Qu’est-ce qu’il cache ? Est-ce qu’il cache, est-ce que c’est l’OS qui cache l’affichage de la fenêtre, etc.

    J’ai un « trou » dans mes connaissances entre des concepts avec lesquels je suis a l’aise (management de la mémoire, structure de donne, X, GPU) et l’affichage au niveau de l’OS.

    Ducoup, ce que je demandais c’était aussi « qu’est-ce qu’il me manque pour faire la passerelle » entre des connaissances purement informatiques/code/hardware et l’affichage OS.

    une certaine maîtrise du système d'affichage pour le système d'exploitation visé
    Voila ! Ça c’est déjà un bon élément de réponse. Si tu pouvais m’énumérer quelques concepts à regarder pour élargir un peu ma vision sur le sujet, je suis preneur.

    Ce n’est pas les compétences C++ qui me manque (je connais, entre autres pImpl ) c’est plus le nom des concepts que je ne connais pas du tout. pImpl est un bon exemple, si tu sais pas que ça existe, il est difficile de le chercher ou de deviner son nom. Et bien c’est de ce genre d’informations dont j’ai besoins.

    Ma question est générale, car elle appelle une réponse générale. Je ne demande pas qu’on m’explique, mais qu’on m’aiguille sur ce que je dois regarder. Après je me débrouille pour creuser.

    Merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/08/2006, 21h51
  2. Fonctionnement interne
    Par menzlitsh dans le forum Windows XP
    Réponses: 7
    Dernier message: 30/03/2006, 23h32
  3. Fonctionnement interne des outils de gestions de paquets
    Par Spoutnik dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/03/2006, 13h52
  4. Fonctionnement interne de l’OpengGL
    Par Ekinoks dans le forum OpenGL
    Réponses: 10
    Dernier message: 06/12/2005, 14h44
  5. Question sur le fonctionnement interne au moteur PHP
    Par Leviathan_72 dans le forum Langage
    Réponses: 3
    Dernier message: 25/11/2005, 01h17

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