Affichage graphisme exerciceP10/ mac...

Affichage graphisme exerciceP10/ mac...

by Pierre Paul Marie Porchet -
Number of replies: 11

Bonjour,

J'ai deux problèmes concernant l'affichage graphisme de l'exercice P10.

Dans la section "Message généraux" j'ai l'affichage suivant et j'ai cru comprendre que cela avait un rapport avec la version de Qt que j'utilisait ainsi que mes kits : "

Project ERROR: You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.

Could not read qmake configuration file /Users/porchetpierre/desktop/Qt/5.14.2/android/mkspecs/android-clang/qmake.conf."

Je compile sur mac et mon binôme sur windows.


Le deuxième problème est par rapport aux méthodes d'affichage du graphisme, le contenu est pour nous un système, nous avons donc implémentes une méthode dans vue_opengl d'affichage que l'on pense convenable. 

Cependant, lors de la compilation la fenêtre d'affichage s'ouvre puis se referme automatiquement et le message suivant apparait : "Le programme s'est terminé subitement". Le déboggage apporte une affirmation selon laquelle dans la méthode dessine(...systeme s...) de vue_open gl, il n'y a pas de valeur pour s, et les toupies que système contient sont inaccessibles.


Merci déjà pour votre aide.


Pierre Porchet 

In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Deleted user -

Pour ta première question. Dans Qt Creator, vérifies que tu utilises le bon compilateur en allant dans l'onglet "Project" sur la gauche. Il est probablement configuré pour construire une application Android?

Pourrais-tu nous dire montrer quels kits Qt Creator a configuré, comme ici?


Pour la seconde, je n'ai pas d'idées.

In reply to Deleted user

Re: Affichage graphisme exerciceP10/ mac...

by Pierre Paul Marie Porchet -

Ok, je met ci-joint des screen-shot de l'onglet projet et de "Manage kits..."

Attachment Capture d’écran 2020-05-14 à 16.00.35.png
Attachment Capture d’écran 2020-05-14 à 16.00.47.png
Attachment Capture d’écran 2020-05-14 à 16.00.57.png
In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Deleted user -

Ça a l'air bien configuré. On dirait une erreur d'installation ce que tu as...

Je te suggère de lancer le "Qt Maintenance Tool" (que tu trouves dans ton répertoire utilisateur, dossier Qt) et de désinstaller tous les composants dont tu ne te sers pas.

Tu devrais avoir un menu similaire à cela (désolé j'ai pas réussi à trouver mieux). Tu peux tout décocher sauf "Qt Creator", et "Qt > Qt 5.14.2 > version mac". Si tu ne sais pas sur quoi cliquer, inclus une capture d'écran et je peux te guider.

Avec un peu de chance, ça désinstallera le compilateur android (et tu gagneras quelques GB sur ton disque).

In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Josué Antoine Maechling -

Pour le 2eme problème:

avez-vous bien utilisé la même manière de faire que l'exemple 5 ? Il faut bien remplacer le contenu par systeme etc. (je vous fais confiance pour ça)

Ensuite c'est peut-être l'endroit où vous créez vos toupies. Pour vous simplifier la tâche vous pouvez essayer de les créer dans le constructeur de GLWidget et de les ajouter au système aussi dedans (et dans ce cas vous auriez un main qt quasiment vide).

Pour être sûr que le débogueur ne vous raconte pas n'importe quoi, essayez d'utiliser la surcharge de << que vous aviez déjà implémentée pour faire cout << toupie ou systeme à plusieurs endroits et voir si effectivement les valeurs sont inaccessibles.

In reply to Josué Antoine Maechling

Re: Affichage graphisme exerciceP10/ mac...

by Pierre Paul Marie Porchet -

Oui c'est exactement ce que l'on a fait dans le constructeur de glWidget en déclarant la toupie que l'on veut implémenter puis en utilisant notre méthode d'ajout au système, enfin si par constructeur par default tu considère ce constructeur ci qui je précise est le même dans l'ex5 : 

GLWidget(QWidget* parent = nullptr){déclaration + méthode d'ajout etc...}.
Je vais essayer alors en mettant des cout.

Merci 
In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Josué Antoine Maechling -

Oui c'est ça dont je parlais, tu fais aussi l'initialisation du système ?

GLWidget::GLWidget(QWidget* parent)
    : QGLWidget(parent)
    , s(&vue,...ce dont tu as besoin){

déclarations et ajouts au système

}

C'est juste une manière de faire mais je veux m'assurer que vous créez bien votre système comme il faut. De toute manière ce n'est de loin pas le seul endroit d'où l'erreur peut venir.

Dis-moi ce que les cout donnent, mais si ça aide pas tu vas devoir m'envoyer les fichiers. Juste comme ça c'est difficile de pouvoir aider...

In reply to Josué Antoine Maechling

Re: Affichage graphisme exerciceP10/ mac...

by Pierre Paul Marie Porchet -

Oui c'est exactement cela que j'ai fais, la je suis passée plusieurs heures dessus en mettant des cout mais je ne vois toujours pas. Et en fait quand j'enlève s.evolue(dt) de la méthode timerevent de glwidget.cc alors la mon affichage apparait sur la fenêtre sans évolution du coup mais mon conesimple apparait


Je pense que oui peut être si cela ne te dérange pas de t'envoyer les fichiers,


Merci beaucoup 

In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Josué Antoine Maechling -

Les cout te permettraient de dire si tu arrives déjà à afficher le système et les toupies ou pas. Tu ne m'as pas dit si ça marchait ?!

Envoie moi un lien vers tout ton code ou envoie le moi en pièce jointe (par mail)...

In reply to Pierre Paul Marie Porchet

Re: Affichage graphisme exerciceP10/ mac...

by Josué Antoine Maechling -

J'ai regardé ton code...

Visiblement tu n'as pas suivi les posts ou le cours en rapport à la manière d'ajouter PROPREMENT des toupies au système quand on utilise des unique_ptr. C'est très certainement ça qui cause un arrêt du programme mais qui ne l'empêche pas de compiler.

LISEZ LE COURS POLYMORPHISME 2 PAGE 11.

Il ne faut JAMAIS intialiser un unique_ptr avec un pointeur à la C, sinon ce unique_ptr n'est plus unique...

Voilà je ne t'en veux pas personnellement bien sûr, les circonstances n'aident pas non plus à suivre le cours en étant concentré tout le temps, mais c'est important d'insister sur ça.

Si tu veux vraiment utiliser des unique_ptr et pas des pointeurs à la C, tu dois avoir copie et cloneMe dans chaque sous-classe de Toupie (et évidemment copie dans la super classe aussi pour le polymorphisme)