Quand je lance mon projet dans Qt .. Il prends un peu de temps et la partie "Sortie de l'Application" clignote ce qui veut dire que tout se passe bien. Mais rien ne s'affiche et le Message "Vote Programme s'est subitement arrêté".
Je ne sais pas quel problème l'IDE peut bien avoir..
Avez vous une idée ?
Merci
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Alors, déjà, quand "sortie de l'application" se met à clignoter, cela ne veut absolument pas dire que "tout se passe bien"...
Cela veut juste dire que tu disposes d'un exécutable, qu'il est exécuté, et "qu'un (ou plusieurs) message(s)" a été affiché.
Si tu clique sur "sortie de l'application", tu devrais voir le(s) message(s) qui ont été affiché(s).
Ensuite, au lieu de faire des impressions écran pour nous donner ton code, pourrais tu faire un copier / coller de celui-ci en utilisant le bouton en forme de < / >? Cela facilitera énormément la vie de tout le monde, entre autres, en permettant "à qui le souhaite" de faire lui-même un copier / coller.
Enfin, c'est bien gentil de nous donner une copie écran qui nous montre que tu as définis quatre fonction dans ton fichier mainwindow.cpp. mais ce qui aurait encore été beaucoup plus utile, ca aurait été de nous donner ... le code que tu as écrit pour ces fonction, car c'est la seule chose qui nous permettra de t'aider (raison pour laquelle nous demandons un copier collé du code).
De même, cela aurait été sympa de nous donner la définition complète de ta classe MainWindow (le code complet du fichier mainwindow.h), pour les même raisons.
Ceci étant dit:
Ton impression écran (au niveau de mainwindow.h) nous indique déjà que le compilateur se plaint qu'il n'y a aucun destructeur virtuel pour ta classe mainwindow. Tu devrais déjà commencer par corriger ce point, en le déclarant sous la forme de
virtual ~mainwindo();
dans le fichier mainwindow.h et en le définissant sous a forme de
mainwindow::~mainwindow(){
}
dans le fichier mainwindow.cpp.
Il y a peu de chance pour que cela suffise à corriger ton problème. Mais disons qu'il est toujours particulièrement intéressant de veiller à corriger les avertissements émis par le compilateur.
Il faut en effet savoir que, quand le compilateur émet un avertissement, c'est parce qu'il a rencontré du code qu'il doit accepter (parce qu'il respecte la syntaxe et la grammaire du langage), mais dont la traduction dans l'application a une grosse probabilité de ne pas réagir tel que tu l'espères lors de l'exécution.
La règle est donc de corriger tous les avertissements qui seront émis par le compilateur
Enfin si la compilation se passe "sans problème", mais que ton application s'arrête brutalement, c'est très souvent (mais pas uniquement) dû à l'utilisation d'un pointeur invalide.
Etant donné la simplicité de ton projet, j'aurais tendance à dire que c'est sans doute parce que certains pointeurs déclarés au niveau de ta classe mainwindow n'ont pas été correctement définis (dans le constructeur, entre autres).
Mais comme nous n'avons toujours pas le code complet de mainwindow.h et du constructeur, il nous est totalement impossible de trouver la raison exacte de ton problème, et je suis donc réduit à faire des suppositions basées sur mon expérience des forums et des erreurs classiques commises par les débutants
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Le code que tu écris (surtout si tu le place sur un forum) sera sans doute beaucoup plus souvent lu qu'il ne sera compilé.
Le compilateur, lui, il se contente parfaitement d'un code où toutes les lignes commencent à la colonne 1, mais, le pauvre malheureux qui doit le lire, lui, il aimerait très fort pouvoir "grouper" les différents éléments du code.
Tu dois donc prendre l'habitude de "formater" ton code de manière à ce que les différentes parties apparaissent clairement. Il y a quantité de mises en formes possibles, et, comme elles se valent à peu près toutes, il ne m'appartient pas de te forcer à en utiliser une plutôt qu'une autre.
Une autre règle à laquelle tu dois t'astreindre, bien qu'elle n'ait aucune espèce d'influence sur le compilateur, c'est de décider une bonne fois pour toute de la forme que tu donnes au nom de tes données (membre de classes et locales), de tes fonctions et de tes classes.
Le nom et la forme que tu utilises pour écrire le nom de quelque chose est sensé représenter l'usage qui sera fait de la chose nommée. Si tu peux te dire, sans même avoir à réfléchir, que "telle chose" représente une donnée membre de ta classe et que "telle autre" représente une donnée locale, alors que "telle encore autre" représente un type de donnée, tu te facilitera énormément la vie par la suite
Mais, une fois que tu auras trouvé celle qui te convient, il sera important de l'appliquer pour l'intégralité de ton projet. Voici la copie adaptée (selon une des mises en formes souvent utilisée) de ton code:
/* NOTA : dans un fichier d'en-tête, le seul fichier
* d'ent-tête dont tu as réellement besoin est celui qui
* contient la classe de base
* tout le reste peut être fourni sous la forme de déclaration
* anticipée
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include<QMainWindow>
/* NOTE QT_BEGIN_NAMESPACE n'est absolument pas nécessaire */
classQAction;
classQMenu;
classQToolBar;
classQStatusBar;
classmainwindow:public QMainWindow
{
public:
mainwindow();
/* à ajouter */
virtual ~mainwindow() = default;
private:
voidcreateActions();
voidcreateMenus();
voidcreateToolBars();
voidcreateStatusBar();
/* NOTA: Aérer un tout petit peu ton code ne fait pas de mal
* Laisser une ou deux lignes vides entre les fonctions privées
* et les données membres de la classe rend les choses
* "plus faciles à lire"
* De même que le fait de séparer les données de types différents
*/
QMenu * MenuFichier;
QMenu * Classer;
QMenu * MenuEdition;
QMenu * MenuAffichage;
QMenu * MenuApropos;
QMenu * MenuStatistiques;
QToolBar * FichierToolBar;
QToolBar * EditionToolBar;
QAction * actionnouveau;
QAction * actionouvrir;
QAction * actionenregistrer;
QAction * actiongenerere;
QAction * actiongenererep;
QAction * actiongenererem;
QAction * actiongenerereb;
QAction * actionquitter;
QAction * actionactualiser;
QAction * actioncopier;
QAction * actioncouper;
QAction * actioncoller;
QAction * actionajoutl;
QAction * actionsupprl;
QAction * actionajoutp;
QAction * actionretraitp;
QAction * actionrechercher;
QAction * actionannuler;
QAction * actionretablir;
QAction * actionclasseraz;
QAction * actionclassermi;
QAction * actionclasserms;
QAction * actionzoomm;
QAction * actionzoomn;
QAction * actionstatd;
QAction * actionstatglob;
QAction * actionpropos;
QAction * actionmanuel;
};
#endif//MAINWINDOW_H
Au passage : C'est une excellente chose que d'utiliser des fonctions bien spécifiques pour créer les différentes parties dont tu as besoin. Cela permet de rendre les choses "plus homogènes".
Par contre, je ne suis absolument pas certain que tu aies besoin des QMenu et des QToolbar pour ce faire...
Enfin, ca, ce n'est qu'un détail
Le fichier mainwindow.cpp
/* Nota : il ne faut inclure un fichier d'en-tête que lorsque
* tu as réellement besoin de connaître la classe qu'il déclare :
* lorsque tu veux créer une instance de la classe (éventuellement
* au travers de new s'il s'agit d'un pointeur)
* ou lorsque tu veux pouvoir faire appel à ses propres
* fonctions membres
*/
#include <mainwindow.h>
#include <QMenu>
#include <QAction>
#include <QToolbar>
mainwindow::mainwindow()
{//CréationdesActiondeMenu
Mainlayout= new QGridLayout;
setCentralWidget(Mainlayout);
createActions();
createMenus();
createToolBars();
}
voidmainwindow::createActions()
{
actionnouveau = new QAction(QIcon(":/images/new.png"),tr("&Nouveau"),this);
actionnouveau->setShortcut(QKeySequence("Ctrl+N"));
actionnouveau->setToolTip(tr("Permet de créer un nouveau fichier de note"));
actionouvrir = new QAction( QIcon(":/images/open.png"), tr( "&Ourvrir" ), this);
actionouvrir->setShortcut( QKeySequence("Ctrl+O") );
actionouvrir->setToolTip( tr("Permet d'ouvrir un fichier existant"));
actionenregistrer= new QAction(QIcon(":/images/save.png"),tr("&Enrégistrer"),this);
actionenregistrer->setShortcut( QKeySequence("Ctrl+S") );
actionenregistrer->setToolTip(tr("Permetd'enregistrerlesmodificationsd'unfichier"));
actiongenerere= new QAction( QIcon(":/images/fiche.png"), tr("&GénererFcihierCNN-E"), this);
actiongenerere->setShortcut( QKeySequence("Ctrl+E") );
actiongenerere->setToolTip( tr("PermetdegenererlefichierCNNdel'Enseignant") );
actiongenererep=newQAction( QIcon(":/images/fichep.png"), tr("&GénererFcihierCNN-EP"), this);
actiongenererep->setShortcut( QKeySequence("Ctrl+P") );
actiongenererep->setToolTip( tr("Permet de generer le fichier CNN de l'EnseignantPrincipal") );
actiongenererem= new QAction( QIcon(":/images/fichm.png"), tr("&GénererFcihierCNN-M"), this);
actiongenererem->setShortcut( QKeySequence("Ctrl+M") );
actiongenererem->setToolTip( tr("Permet de generer le fichier moyenne du 1 ersemestre") );
actiongenerereb = new QAction (QIcon(":/images/fichb.png"), tr("&GénererBulletins)"), this);
actiongenerereb->setShortcut( QKeySequence("Ctrl+B") );
actiongenerereb->setToolTip(tr("Permet de generer les bulletin en version imprimable"));
actionquitter= new QAction( QIcon(":/images/quit.png"), tr("&Quitter)"), this);
actionquitter->setShortcut( QKeySequence("Ctrl+Q") );
actionquitter->setToolTip( tr("Fermer Fenêtre et Quitter l'application") );
connect(actionquitter,SIGNAL(triggered()),qApp,SLOT(closeAllWindows()));
//FinMenuFichier_DebutMenuEdition
actionactualiser = new QAction( QIcon(":/images/remove.png"), tr("&Actualiser"), this);
actionactualiser->setShortcut( QKeySequence("Ctrl+R") );
actionactualiser->setToolTip(tr("Permet de changer la matière et le Coef du Cahier"));
actioncopier = new QAction(QIcon(":/images/copy.png"), tr("&Copier"), this);
actioncopier->setShortcut( QKeySequence("Ctrl+C") );
actioncopier->setToolTip(tr("Permet de copier l'information selectionnée"));
actioncouper = new QAction(QIcon(":/images/cut.png"), tr("&Couper"), this);
actioncouper->setShortcut( QKeySequence("Ctrl+X") );
actioncouper->setToolTip(tr("Permet de couper l'information selectionnée"));
actioncoller = new QAction(QIcon(":/images/past.png"), tr("&Coller"), this);
actioncoller->setShortcut( QKeySequence("Ctrl+V") );
actioncoller->setToolTip(tr("Permet de coller l'information precedemment copiée/coupée"));
actionajoutl = new QAction(QIcon(":/images/addline.png"), tr("&AjouterLigne"), this);
actionajoutl->setShortcut( QKeySequence("Ctrl+L") );
actionajoutl->setToolTip( tr("Permet d'ajouter une ligne au tableau de Note") );
actionsupprl=newQAction(QIcon(":/images/delline.png"), tr("&SupprimerLigne"), this);
actionsupprl->setShortcut (QKeySequence("Ctrl+K") );
actionsupprl->setToolTip( tr("Permet de supprimer une ligne du tableau de Note") );
actionajoutp=newQAction(QIcon(":/images/add.png"), tr("&AjouterPoint"), this);
actionajoutp->setShortcut( QKeySequence("Ctrl+J") );
actionajoutp->setToolTip(tr("Permet d'ajouter des points a l'ensemble de la classe dans une Evaluation") );
actionretraitp= new QAction(QIcon(":/images/ad.png"), tr("&RetirerPoint"), this);
actionretraitp->setShortcut( QKeySequence("Ctrl+I") );
actionretraitp->setToolTip(tr("Permet de soustraire des points a l'ensemble de la classe dans une Evaluation"));
//Manqued'image
actionrechercher = new QAction(QIcon(":/images/reche.png"), tr("&Rechercher"), this);
actionrechercher->setShortcut( QKeySequence("Ctrl+R") );
actionrechercher->setToolTip( tr("Permet de rechercher une information precise"));
actionannuler= new QAction( QIcon(":/images/annuler.png"), tr("&Annuler"), this);
actionannuler->setShortcut( QKeySequence("Ctrl+A") );
actionannuler->setStatusTip( tr("Permet d'annuler les dernières actions effectuées non enregistrées"));
actionretablir= new QAction( QIcon(":/images/suivant.png"), tr("&Rétablir"), this);
actionretablir->setShortcut( QKeySequence("Ctrl+Z") );
actionretablir->setToolTip(tr("Permet de rétablir la dernière action annulée non enregistrée") );
actionclasseraz = new QAction( QIcon(":/images/classer.png"), tr("&Classer/Ordre Alphabétique"), this);
actionclasseraz->setShortcut( QKeySequence("Ctrl+U") );
actionclasseraz->setToolTip( tr("Permet de Classer par ordre alphabétique les noms des apprenants") );
//Manqued'image
actionclassermi= new QAction( tr("&Classer/Moyenne Interro"), this);
actionclassermi->setShortcut( QKeySequence("Ctrl+F") );
actionclassermi->setToolTip(tr("Permet de trier suivant l'ordre croissant des moyennes d'interrogation obtenues") );
actionclasserms= new QAction( tr("&Classer/Moyenne Semestrielle"), this);
actionclasserms->setShortcut( QKeySequence("Ctrl+G") );
actionclasserms->setToolTip(tr("Permet de trier suivant l'ordre croissant les moyennes semestrielles obtenues") );
//FinMenuEditionDebutMenuAffichage
actionzoomm= new QAction( QIcon(":/images/zoomm.png"), tr("&Zoom+"), this);
actionzoomm->setStatusTip(tr("Permet d'agrandir la taille des caractères"));
actionzoomn= new QAction( QIcon(":/images/zoomn.png"), tr("&Zoom-"), this);
actionzoomn->setStatusTip(tr("Permet de réduire la taille des caractères"));
//FinMenuAffichageDebutMenuStatistiques
actionstatd= new QAction( QIcon(":/images/classerms.png"), tr("&Statitique/Matière"), this);
actionstatd->setShortcut( QKeySequence("Ctrl+D") );
actionstatd->setToolTip( tr("Affiche les statistiques selon les moyennes semestrielles/Matière") );
actionstatglob= new QAction( tr("&Statitiques Global"), this);
actionstatglob->setShortcut( QKeySequence("Ctrl+W") );
actionstatglob->setToolTip(tr("Affiche les statistiques selon les moyennes semestrielle Génerale"));
//MenuApropos
actionpropos= new QAction( tr("&Aproposde CNN"), this);
actionpropos->setToolTip( tr("Connaître l'Application et sonauteur"));
actionmanuel = new QAction(tr("&Manuel d'Utilisation"),this);
actionmanuel->setToolTip( tr("Comprendre l'utilisation de l'application") );
}
voidmainwindow::createMenus()
{
MenuFichier=menuBar()->addMenu(tr("&Fichier"));
MenuFichier->addAction(actionnouveau);
MenuFichier->addAction(actionouvrir);
MenuFichier->addAction(actionenregistrer);
MenuFichier->addAction(actiongenerere);
MenuFichier->addAction(actiongenererep);
MenuFichier->addAction(actiongenererem);
MenuFichier->addAction(actiongenerereb);
MenuFichier->addAction(actionquitter);
menuBar()->addSeparator();
MenuEdition=menuBar()->addMenu(tr("&Eddition"));
MenuEdition->addAction(actionactualiser);
MenuEdition->addAction(actioncopier);
MenuEdition->addAction(actioncouper);
MenuEdition->addAction(actioncoller);
MenuEdition->addAction(actionajoutl);
MenuEdition->addAction(actionsupprl);
MenuEdition->addAction(actionajoutp);
MenuEdition->addAction(actionretraitp);
MenuEdition->addAction(actionannuler);
MenuEdition->addAction(actionretablir);
MenuEdition->addAction(actionrechercher);
QMenu*menuClasser= new QMenu("Classer/");
menuClasser->addAction(actionclasseraz);
menuClasser->addAction(actionclassermi);
menuClasser->addAction(actionclasserms);
MenuEdition->addAction(actionzoomm);
MenuEdition->addAction(actionzoomn);
menuBar()->addSeparator();
MenuStatistiques=menuBar()->addMenu(tr("&Statistiques"));
MenuStatistiques->addAction(actionstatd);
MenuStatistiques->addAction(actionstatglob);
menuBar()->addSeparator();
MenuApropos=menuBar()->addMenu(tr("&Apropos"));
MenuApropos->addAction(actionpropos);
MenuApropos->addAction(actionmanuel);
}
voidmainwindow::createToolBars()
{
QToolBar * toolBar = new QToolBar("Edition",this);
addToolBar(Qt::TopToolBarArea,toolBar);
EditionToolBar->addAction(actionactualiser);
EditionToolBar->addAction(actioncopier);
EditionToolBar->addAction(actioncouper);
EditionToolBar->addAction(actioncoller);
EditionToolBar->addAction(actionajoutl);
EditionToolBar->addAction(actionsupprl);
EditionToolBar->addAction(actionajoutp);
EditionToolBar->addAction(actionretraitp);
EditionToolBar->addAction(actionrechercher);
EditionToolBar->addAction(actionannuler);
EditionToolBar->addAction(actionretablir);
EditionToolBar->addAction(actionclasseraz);
EditionToolBar->addAction(actionclassermi);
EditionToolBar->addAction(actionclasserms);
EditionToolBar->addAction(actionzoomm);
EditionToolBar->addAction(actionzoomn);
QToolBar * toolbar = newQToolBar("Fichier",this);
addToolBar(Qt::LeftToolBarArea,toolBar);
FichierToolBar->addAction(actionnouveau);
FichierToolBar->addAction(actionouvrir);
FichierToolBar->addAction(actionenregistrer);
FichierToolBar->addAction(actiongenerere);
FichierToolBar->addAction(actiongenererep);
FichierToolBar->addAction(actiongenererem);
FichierToolBar->addAction(actiongenerereb);
FichierToolBar->addAction(actionstatd);
FichierToolBar->addAction(actionstatglob);
FichierToolBar->addAction(actionquitter);
}
voidmainwindow::createStatusBar()
{
}
NOTA: je n'ai rien corrigé dans le code (à part quelques fautes d'orthographe qui m'arrachaient les yeux)
Avoue que c'est tout de suite beaucoup plus facile à lire, non ???
Sauf que, à vue d'oeil, ce code ne devrait déjà pas compiler :P Ne serait-ce queparce que tu déclares deux fois la variable locale toolbar dans la même portée de la fonction createToolbar
Entuite, tu crée une QToolbar nommée ...toolbar, mais tu essaye de remplir une QToolbar nommée ...editionToolbar (et une autre nommée FichierToolbar), qui ont été déclarées, mais non créées.
Et tu t'étonnes que l'application ne soit pas d'accord ?
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Je vais de suite remettre de l'ordre dans tout ça...
Non, Je ne m'étonne pas vraiment. Rien qu'à évaluer moi même mon niveau. Je suis plus ou moins quelques cours et je prends un exemple de ce qu'ils font dans le cours pour l'adapter à mon projet. "Erreur Monumentale, on dirait"
koala01 a écrit:
Sauf que, à vue d'oeil, ce code ne devrait déjà pas compiler :P Ne serait-ce queparce que tu déclares deux fois la variable locale toolbar dans la même portée de la fonction createToolbar
Entuite, tu crée une QToolbar nommée ...toolbar, mais tu essaye de remplir une QToolbar nommée ...editionToolbar (et une autre nommée FichierToolbar), qui ont été déclarées, mais non créées.
Et tu t'étonnes que l'application ne soit pas d'accord ?
A la place de la variable locale toolbar créé deux fois inutilement, je voulais mettre Fichiertoolbar et Editiontoolbar et les remplir par la suite avec les actions déjà créés.
ce sera :
void mainwindow::createToolBars()
{
QToolBar *EditiontoolBar = new QToolBar("Edition", this);
addToolBar(Qt::TopToolBarArea, EditiontoolBar);
QToolBar *FichiertoolBar = new QToolBar("Fichier", this);
addToolBar(Qt::LeftToolBarArea, FichiertoolBar);
}
Le code est il correcte ?
Je vais régler les autres erreurs à corriger puis je te tiens informer..
Sincère Merci Koala01...
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
void mainwindow::createToolBars()
{
QToolBar *EditiontoolBar = new QToolBar("Edition", this);
addToolBar(Qt::TopToolBarArea, EditiontoolBar);
QToolBar *FichiertoolBar = new QToolBar("Fichier", this);
addToolBar(Qt::LeftToolBarArea, FichiertoolBar);
}
Le code est il correcte ?
Je vais régler les autres erreurs à corriger puis je te tiens informer..
Sincère Merci Koala01...
Pas d'avantage, car, là, tu vas créer deux variables locales (à la fonction createToolBars() ) qui portera le même nom que tes données membres (EditiontoolBar et FichiertoolBar ) :P.
Ce sera autorisé par le langage, mais cela foutra la merde dans ton programme, parce que, une fois que la fonction aura été quittée, les variables locales (celles qui sont définies) seront oubliées et seules resteront ... les données membres (celles qui ne sont pas définies).
Ce que tu dois faire, c'est travailler de la même manière (mais en adaptant le code bien sur) que celle dont tu crées les différentes actions
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Mais si je dois proccéder comme pour la façon dont j'ai créé les actions. Alors je crée un new QtoolBar pour chaque élément que je désire avoir sur ma barre d'outil.
Exacte ?
Un peu comme : Pour Nouveau
QtoolBar *Nouveau = new QtoolBar("New");
addToolBar(Qt::TopToolBarArea, Nouveau);
Si oui, comment je vais relier les divers actions à chaque QtoolBar dans ce cas ci ?
Aussi l'orientation du toolbar sera définis a chaque fois ?
Toujours Merci pour ton aide...
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
De manière générale, tous les widgets seront créés selon le même principes:
Tu crées ton widget avec new
Tu modifies les valeurs qui t'intéressent
tu l'ajoute au widget parent.
tu ajoutes à ton nouveau widgets les widgets qu'il doit contenir
- Edité par koala01 11 février 2019 à 8:04:23
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Voilà j'ai corrigé le code et tout va presque bien.
koala01 a écrit:
Ceci étant dit:
Ton impression écran (au niveau de mainwindow.h) nous indique déjà que le compilateur se plaint qu'il n'y a aucun destructeur virtuel pour ta classe mainwindow. Tu devrais déjà commencer par corriger ce point, en le déclarant sous la forme de
virtual ~mainwindo();
dans le fichier mainwindow.h et en le définissant sous a forme de
mainwindow::~mainwindow(){
}
dans le fichier mainwindow.cpp.
Il y a peu de chance pour que cela suffise à corriger ton problème. Mais disons qu'il est toujours particulièrement intéressant de veiller à corriger les avertissements émis par le compilateur.
J'ai respecté ces consignes et je reçoit des notifications d'erreur
Voilà l'extrait Mainwindow.h
class mainwindow : public QMainWindow
{
public:
mainwindow();
virtual ~mainwindow() = default;
Notification 1 "Defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 (Enabled by Default)
Notification 2 "virtual~mainwindow()=default; Explicity defaulted here
Notification 3 "Warning : "defaulted function definitions are a C++11 Extension"
Voilà l'extrait Mainwindow.cpp
mainwindow::mainwindow()
{ //Création des Action de Menu
createActions();
createMenus();
createToolBars();
}
mainwindow::~mainwindow()
{
}
Notification 1 : "definition of defaulted explicity"
A quel problème je suis confronté là ?
J'ai mis les notifications telles quelles afin de comprendre ces problèmes une fois. C'est rare de trouver des personnes disposé a aider quand ont est débutant et qu'on pose des question ahurissantes.
Quel solution je peut préconiser ?
Merci et Bon début de semaine....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Je peux lui faire quoi pour faire partir la notification ?
Merci
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Programme subitement arrêté...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....
Rendez vous là où il n'y a pas de chemin et laisser vos traces....