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 :

Message d'erreur à l'ouverture d'une boîte de dialogue

  1. #41
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    désolée je n'ai pas bien saisi !
    a vrai dire j'ai fait que enlever le #include<fenetreBD> du fichier Info.h.
    je ne comprend pas bien l'histoire de l'héritage

    que ce que je dois faire au just ?

    quand je choisit de mettre votre 1 ère suggestion et aussi j'ai enlevé le #include "ui_fenetreBD.h" j'ai aussi des erreurs

    voici mon code

    Info.h

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #ifndef INFO_H
    #define INFO_H
     
    #include <QMainWindow>
    #include <QImage>
     
    //#include "ui_fenetreBD.h"
    //#include "highgui.h"
    //#include <iostream>
    //#include <conio.h>
    //#include<stdlib.h>
    //#include<math.h>
    #include <stdio.h>
    #include <string.h>
    #include <QTextBrowser>
     
    namespace Ui {
        class Info;
    }
     
     
    class Info : public QWidget{
    //class Info : public QWidget, private Ui::Info{
        Q_OBJECT
    public:
    	  explicit Info(QWidget *parent = 0);
        //Info(QWidget *parent = 0);
        ~Info();
     
     
        //public:
    private:
        Ui::Info *ui;
     
      };
     
     #endif
    Info.cpp

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include "Info.h"
    #include "ui_fenetreBD.h"
     
    //#include "highgui.h"
    #include <QString>
    #include <QFileDialog>
    #include <QMessageBox>
    #include <QGridLayout>
    #include <QPixmap>
    #include <QTextEdit>
    #include <QInputDialog>
     
    Info:: Info(QWidget * parent):
        QWidget(parent),
       ui(new Ui::Info)
    {
        ui->setupUi(this);
    }
     
     
     
     
     
    //Info::Info(QWidget *) :
        //QWidget(),
        //ui(new Ui::Info)
     
    //{
        //setupUi(this);
    	//ui->setupUi(this);
     
    	//this->setWindowIcon(QIcon("accessories-text-editor.png"));
     
     
    Info::~Info()
    {
        delete ui;
    }
    voici mon msg d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    In file included from MaFenetre.cpp:9:
    Info.h: At global scope:
    Info.h:17: error: expected unqualified-id before 'namespace'
    Info.h:34: error: ISO C++ forbids declaration of 'Info' with no type
    Info.h:34: error: invalid use of '::'
    Info.h:34: error: expected ';' before '*' token
    mingw32-make[1]: *** [debug/MaFenetre.o] Error 1
    Ya un truc qui ne va pas et je n'arrive a le detecté, de l'aide svp

  2. #42
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Avec exactement les mêmes sources que vous (j'ai fait un projet graphique, QWidget, et j'ai copié/collé vos sources, donc j'ai pareil à part l'ui bien sûr), j'arrive à compiler sans problème.

    Essayez de faire un "clean" avant de recompiler tout. L'erreur, d'après quelques recherches, arrive quand il manque un ; quelque part... mais là ça a l'air bon donc je sais pas.

    #include <QMainWindow> => #include <QWidget> suffit puisque vous faites un QWidget.

  3. #43
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    dois je chercher que dans info.h ??

  4. #44
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    J'ai encore une fois refait mes fichiers, j'ai fait de l'hritage multiple pour tous mes fichiers.


    Info.h


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #ifndef INFO_H
    #define INFO_H
     
    #include <QWidget>
    #include <QImage>
    #include "ui_fenetreinfo.h"
    //#include "highgui.h"
    //#include <conio.h>
    //#include<stdlib.h>
    #include <stdio.h>
    #include <string.h>
    //#include <QTextBrowser>
    #include <iostream>
     
     
    /*namespace Ui {
        class Info;
    }*/
     
     
    //class Info : public QWidget{
    //class Info : public QWidget, private Ui::Info{
    	class Info : public QWidget, Ui::Info{
        Q_OBJECT
    public:
    	explicit Info(QWidget *parent = 0);
        //Info(QWidget *parent = 0);
        ~Info();
     
     
    //public:
        //Ui::Info * ui;
     
      };
     
     
    #endif
    Info.cpp

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include "Info.h"
    #include "ui_fenetreinfo.h"
    //#include "highgui.h"
    #include <QString>
    #include <QFileDialog>
    #include <QMessageBox>
    #include <QGridLayout>
    #include <QPixmap>
    #include <QTextEdit>
    #include <QInputDialog>
    #include <QWidget>
    #include <iostream>
    /*#include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include <iostream>
    #include <conio.h>*/
     
     
     
     
    //using namespace std;
     
    Info::Info(QWidget *parent) :
    //Info::Info(QWidget *) :
    //QWidget(),
    QWidget(parent)
        //ui(new Ui::Info)
    {
        setupUi(this);
    	//ui->setupUi(this);
     
    	//this->setWindowIcon(QIcon("accessories-text-editor.png"));
     
     
    //------------------------------------------------les connexions----------------------------------------------
     
     //QObject::connect(buttonpreced,SIGNAL(clicked()),this,SLOT(MaFenetre()));
     
     
    }
     
     
    Info::~Info()
    {
        //delete ui;
    }

    main.cpp
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    #include <cv.h>
    #include <highgui.h>
    #include <cxcore.h>
    #include <cvaux.h>
    #include "highgui.h"
    #include "cvaux.h"
     
    #include <QtGui/QApplication>
     
    #include "MaFenetre.h"
    #include "Apropos.h"
    #include "Aproposqt.h"
    #include "BD2.h"
    #include "Dialog.h"
    #include "MonTraitement.h"
    #include "Info.h"
    #include "Dialog.h"
    #include "Aide.h"
     
     
    //#include<stdio.h>
    //#include<stdlib.h>
    //#include<string.h>
    //#include <iostream>
    //#include "cvaux.h"
    //#include "highgui.h"
    //#include <ctype.h>
    //#include<math.h>
     
     
     
     
    //------------------------------------------------les vars globales----------------------------------------------------
     
    extern char* chemin;
    extern IplImage* pic;
    extern IplImage* pic2;
    extern char* chemin3;
    extern IplImage* pic3;
    extern IplImage* pic4;
    extern int hauteur;
    extern int largeur;
    //extern CvSize imageSize;
    //extern IplImage* g_gray = NULL;
    //extern int		g_thresh = 100;
    //extern CvMemStorage* 	g_storage = NULL;
     
     
     
    //--------------------------------------------------------------------------------------------------------------------
     
     int main(int argc, char *argv[])
    {
     
        QApplication a(argc, argv);
        MaFenetre w;
        w.show();
     
        return a.exec();
    }
    MaFenetre.cpp

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    #include "MaFenetre.h"
    #include "ui_fenetre0.h"
     
    #include "Apropos.h"
    #include "ui_fenetreaproposapp.h"
    #include "Aproposqt.h"
    #include "ui_fenetreaproposqt.h"
    #include "MonTraitement.h"
    #include "ui_fenetreTrait.h"
    #include "Info.h"
    #include "ui_fenetreinfo.h"
    #include "BD2.h"
    #include "ui_fenetreBD2.h"
    #include "Dialog.h"
    #include "ui_fenetreDialog.h"
    #include "Aide.h"
    #include "ui_fenetreHelp.h"
     
     
    #include <highgui.h>
    #include <cv.h>
    #include <cxcore.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include <iostream>
    #include "cvaux.h"
    #include "highgui.h"
    #include <ctype.h>
    #include<math.h>
    #include <QtGui>
    #include <QMainWindow>
    #include <QtGui/QApplication>
    #include <QString>
    #include <QFileDialog>
    //#include <QMessageBox>
    //#include <QGridLayout>
    #include <QPixmap>
    #include <QTextEdit>
    #include <QLabel>
    #include <QInputDialog>
    #include <QTextBrowser>
    #include <QDialog>
    #include <iostream>
     
    //using namespace std;
     
     //MaFenetre::MaFenetre(QWidget *) :
        //QMainWindow(),
     
    MaFenetre::MaFenetre(QWidget * parent) :
    //MaFenetre::MaFenetre() :
        QMainWindow(parent)
    	//QMainWindow(),
        //ui(new Ui::MaFenetre)
    {
        setupUi(this);
    //----------------------------les icones des boutons et actions-------------------------------------------
     
    //--------------------------------------les bouttons------------------
        //QPushButton *buttonquit=new QPushButton("",this);
    	//buttonquit->setIcon(QIcon("arreter3.png"));
    	//buttonquit->setGeometry(135, 207, 31, 31);
        //QPushButton *buttontraiter=new QPushButton("",this);
    	//buttontraiter->setIcon(QIcon("traitement.png"));
    	//buttontraiter->setGeometry(135, 138, 31, 31);
    //--------------------------------------------la fenetre-------------- 
    	this->setWindowIcon(QIcon("lena.png"));
    //------------------------------------------------les actions-------------------------------------------
     
    	actionA_propos_application->setIcon(QIcon("à propos.png"));
        actionA_propos_Qt->setIcon(QIcon("à propos2.png"));
    	actionQuitter->setIcon(QIcon("arreter.png"));
    	action_Traiter->setIcon(QIcon("traitement.png"));
    	//action_chercher->setIcon(QIcon("jumelle.png"));
    	action_charger->setIcon(QIcon("loader.png"));
    	//action_Explorer->setIcon(QIcon("exploration.png"));
    	action_Base_Image->setIcon(QIcon("bd_img.png"));
     
    //------------------------------------------------les connexions----------------------------------------------
     
        QObject:: connect(actionQuitter,SIGNAL(triggered()),qApp,SLOT(quit()));
    		//connect(action_charger,SIGNAL(triggered()),this,SLOT(charger_img()));
                 connect(action_Traiter,SIGNAL(triggered()),this,SLOT(traiter()));
    			 connect(action_Info,SIGNAL(triggered()),this,SLOT(info_bd()));
    			 connect(action_Stat,SIGNAL(triggered()),this,SLOT(stat_bd()));
     
               	  connect(actionA_propos_application,SIGNAL(triggered()),this,SLOT(aproposapp()));
    	         connect(actionA_propos_Qt,SIGNAL(triggered()),this,SLOT(aproposqt()));
    			 connect(menu_Help,SIGNAL(clicked()),this,SLOT(allerHelp()));
     
     
     
    //------------------------------------------------------------------------------------------------------------	
    	}
     
    //------------------------------les slots personnalisés--------------------------------------------------------
    void MaFenetre :: quit()
    {
    	//MaFenetre:: *confiramtion= new MaFenetre(this);
        //QMessageBox::question(this, "confirmation", " ?tes-vous sur de vouloir quitter ?", QMessageBox::Yes | QMessageBox::No);
    	//confirmation->show();
      Dialog *j = new Dialog(this);
          j->show();
    }
     
     
    void MaFenetre :: traiter()
    {
        MonTraitement *x = new MonTraitement(this);
          x->show();
        }
     
    void MaFenetre :: info_bd()
    { Info *p = new Info(this);
          p->show();
        }
     
    void MaFenetre :: stat_bd()
    { BD2 *k = new BD2(this);
          k->show();
        }
     
     
    void MaFenetre ::aproposapp ()
    {
         Apropos *d = new Apropos(this);
          d->show();
        }
     
    void MaFenetre ::aproposqt ()
    {
         Aproposqt *e = new Aproposqt(this);
          e->show();
        }	
     
    void MaFenetre :: allerHelp ()
    {
         Aide *t = new Aide(this);
          t->show();
        }	
     
     
     
    //-----------------------------------------destructeur----------------------------------------------------------------	
    	MaFenetre::~MaFenetre()
    {
        //delete ui;
     
    }
    MaFenetre.h

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #ifndef MAFENETRE_H
    #define MAFENETRE_H
     
    #include <QtGui>
    #include <QMessageBox>
    #include <QMainWindow>
    #include <QImage>
    #include "ui_fenetre0.h"
    #include <iostream>
     
     
    #include <stdio.h>
     
     
    /*namespace Ui {
        class MaFenetre;
    }*/
     
     
    //class MaFenetre : public QMainWindow, private Ui::MaFenetre{
    	class MaFenetre : public QMainWindow, Ui::MaFenetre{
        Q_OBJECT
    public:
        MaFenetre(QWidget *parent = 0);
        ~MaFenetre();
     
     
       //public:
        //Ui::MaFenetre *ui; // pour pouvoir faire le destructeur de la classe MaFenetre
     
    //----------------------------------les slots personnalisés---------------------------------------------
    	private slots:
     
        void quit();
        void traiter();
    	void info_bd();
    	void stat_bd();
    	void aproposapp();
        void aproposqt();
    	void allerHelp();
     
     };
     
    #endif
    Mon msg d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    In file included from Info.h:6,
                     from MaFenetre.cpp:10:
    ui_fenetreinfo.h: At global scope:
    ui_fenetreinfo.h:91: error: multiple types in one declaration
    mingw32-make[1]: *** [debug/MaFenetre.o] Error 1
    mingw32-make[1]: Leaving directory `D:/Projet/notre_interface/notre_interface'
    mingw32-make: *** [debug] Error 2
    PS: MaFenetre c'est la classe mère de Info

    je ne comprend plus j'ai tout essayé, le #include "ui_fenetreinfo.h" dans Info.h il est obligatoire j'ai essayé de l'enlever mais j'ai eu: Ui was declared...
    j'ai essayé de l'enlever de MaFenetre ça n'a rien changé ( l'erreur reste la mm).

    Svp aider moi!

  5. #45
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui_fenetreinfo.h:91: error: multiple types in one declaration
    Allez voir ligne, quelque chose doit clocher dans votre ui.

  6. #46
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    merci mais ce n'est plus la pêne.
    j'ai réussi maintenant j'ai plus d'erreur, j'ai refait tous l'héritage de mes fichier en plus il me manquer un ; l'un de mes fichiers qui n'avait rien avoir avec Info.

    Mais la j'ai un nouveau souci:
    voila je n'ai aucun msg d'erreur, mon interface s'affiche correctement mais quand je clique sur Exit y'a rien qui s'affiche or moi je veux une boite de dialogue pour confirmer.
    voila mes codes:

    MaFenetre.cpp

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    #include "MaFenetre.h"
    #include "ui_fenetre0.h"
     
    #include "Apropos.h"
    #include "ui_fenetreaproposapp.h"
    #include "Aproposqt.h"
    #include "ui_fenetreaproposqt.h"
    #include "MonTraitement.h"
    #include "ui_fenetreTrait.h"
    #include "Info.h"
    #include "ui_fenetreinfo.h"
    #include "BD2.h"
    #include "ui_fenetreBD2.h"
    #include "Dialog.h"
    #include "ui_fenetreDialog.h"
    #include "Aide.h"
    #include "ui_fenetreHelp.h"
     
     
    #include <highgui.h>
    #include <cv.h>
    #include <cxcore.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include <iostream>
    #include "cvaux.h"
    #include "highgui.h"
    #include <ctype.h>
    #include<math.h>
     
    #include <QtGui>
    #include <QMainWindow>
    #include <QtGui/QApplication>
    #include <QString>
    #include <QFileDialog>
    //#include <QMessageBox>
    //#include <QGridLayout>
    #include <QPixmap>
    #include <QTextEdit>
    #include <QLabel>
    #include <QInputDialog>
    #include <QTextBrowser>
    #include <QDialog>
    #include <iostream>
     
    //using namespace std;
     
     //MaFenetre::MaFenetre(QWidget *) :
        //QMainWindow(),
     
    MaFenetre::MaFenetre(QWidget * parent) :
    //MaFenetre::MaFenetre() :
        QMainWindow(parent), 
    	//QMainWindow(),
        ui(new Ui::MaFenetre)
    {
        setupUi(this);
    //----------------------------les icones des boutons et actions-------------------------------------------
     
    //--------------------------------------les bouttons------------------
        //QPushButton *buttonquit=new QPushButton("",this);
    	//buttonquit->setIcon(QIcon("arreter3.png"));
    	//buttonquit->setGeometry(135, 207, 31, 31);
        //QPushButton *buttontraiter=new QPushButton("",this);
    	//buttontraiter->setIcon(QIcon("traitement.png"));
    	//buttontraiter->setGeometry(135, 138, 31, 31);
    //--------------------------------------------la fenetre-------------- 
    	this->setWindowIcon(QIcon("lena.png"));
    //------------------------------------------------les actions-------------------------------------------
     
    	//actionA_propos_application->setIcon(QIcon("à propos.png"));
        //actionA_propos_Qt->setIcon(QIcon("à propos2.png"));
    	//actionQuitter->setIcon(QIcon("arreter.png"));
    	//action_Traiter->setIcon(QIcon("traitement.png"));
    	//action_chercher->setIcon(QIcon("jumelle.png"));
    	//action_charger->setIcon(QIcon("loader.png"));
    	//action_Explorer->setIcon(QIcon("exploration.png"));
    	//action_Base_Image->setIcon(QIcon("bd_img.png"));
     
    //------------------------------------------------les connexions----------------------------------------------
     
           QObject:: connect(actionQuitter,SIGNAL(triggered()),qApp,SLOT(quitterapp()));
    		      //connect(action_charger,SIGNAL(triggered()),this,SLOT(charger_img()));
           QObject:: connect(action_Traiter,SIGNAL(triggered()),this,SLOT(traiter()));
    	   QObject:: connect(action_Info,SIGNAL(triggered()),this,SLOT(info_bd()));
    	   QObject:: connect(action_Stat,SIGNAL(triggered()),this,SLOT(stat_bd()));
     
           QObject:: connect(actionA_propos_application,SIGNAL(triggered()),this,SLOT(aproposapp()));
    	   QObject:: connect(actionA_propos_Qt,SIGNAL(triggered()),this,SLOT(aproposqt()));
    	   QObject:: connect(menu_Help,SIGNAL(clicked()),this,SLOT(allerHelp()));
     
     
     
    //------------------------------------------------------------------------------------------------------------	
    	}
     
    //------------------------------les slots personnalisés--------------------------------------------------------
    void MaFenetre :: quitterapp()
    {
    	//MaFenetre:: *confiramtion= new MaFenetre(this);
        //QMessageBox::question(this, "confirmation", " ?tes-vous sur de vouloir quitter ?", QMessageBox::Yes | QMessageBox::No);
    	//confirmation->show();
      Dialog *j = new Dialog(this);
          j->show();
    }
     
     
    void MaFenetre :: traiter()
    {
        MonTraitement *x = new MonTraitement(this);
          x->show();
        }
     
    void MaFenetre :: info_bd()
    { Info *p = new Info(this);
          p->show();
        }
     
    void MaFenetre :: stat_bd()
    { BD2 *k = new BD2(this);
          k->show();
        }
     
     
    void MaFenetre ::aproposapp ()
    {
         Apropos *d = new Apropos(this);
          d->show();
        }
     
    void MaFenetre ::aproposqt ()
    {
         Aproposqt *e = new Aproposqt(this);
          e->show();
        }	
     
    void MaFenetre :: allerHelp ()
    {
         Aide *t = new Aide(this);
          t->show();
        }	
     
     
     
    //-----------------------------------------destructeur----------------------------------------------------------------	
    	MaFenetre::~MaFenetre()
    {
        delete ui;
     
    }
    MaFenetre.h
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #ifndef MAFENETRE_H
    #define MAFENETRE_H
     
    #include <QtGui>
    #include <QMessageBox>
    #include <QMainWindow>
    #include <QImage>
    #include "ui_fenetre0.h"
    //#include <iostream>
     
     
    #include <stdio.h>
     
     
    namespace Ui {
        class MaFenetre;
    }
     
     
    class MaFenetre : public QMainWindow, private Ui::MaFenetre{
    	//class MaFenetre : public QMainWindow{
        Q_OBJECT
    public:
        MaFenetre(QWidget *parent = 0);
        ~MaFenetre();
     
    	private:
            Ui::MaFenetre * ui;
     
       //public:
        //Ui::MaFenetre *ui; // pour pouvoir faire le destructeur de la classe MaFenetre
     
    //----------------------------------les slots personnalisés---------------------------------------------
    	private slots:
     
        void quitterapp();
        void traiter();
    	void info_bd();
    	void stat_bd();
    	void aproposapp();
        void aproposqt();
    	void allerHelp();
     
     
     
     };
     
    #endif
    Dialog.cpp
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #include "Dialog.h"
    #include "ui_fenetreDialog.h"
    #include "MaFenetre.h"
    #include "ui_fenetre0.h"
    #include <QPushButton>
    //#include "highgui.h"
    /*#include <QString>
    #include <QFileDialog>
    #include <QMessageBox>
    #include <QGridLayout>
    #include <QPixmap>
    #include <QTextEdit>
    #include <QInputDialog>
    #include <QDialog>
    #include <iostream>*/
     
    Dialog:: Dialog(QWidget*):
       //QDialog(),
        //ui(new Ui::Dialog)
     
    //Dialog:: Dialog(QWidget *parent ):
        //QDialog(parent)
    	QWidget(),
    		ui(new Ui::Dialog)
     
     
    {
    	//ui->setupUi(this);
    	setupUi(this);
     
    	//this->setWindowIcon(QIcon("accessories-text-editor.png"));
    	QPushButton *buttonYes=new QPushButton("Yes",this);
    	//buttonYes->setIcon(QIcon("valider.png"));
    	//buttonYes->move(100, 140);
     
    	QPushButton *buttonNo=new QPushButton("No",this);
    	//buttonannuler->setIcon(QIcon("fermer2.png"));
    	//buttonNo->move(180, 140);
    	//this->setWindowIcon(QIcon("video-icon.png"));
     
     
    //------------------------------------------------les connexions----------------------------------------------
     
    	QObject:: connect(buttonYes,SIGNAL(clicked()),this,SLOT(fermer()));
    		      connect(buttonNo,SIGNAL(clicked()),this,SLOT(rester()));
     
    }
    //------------------------------les slots personnalisés--------------------------------------------------------
     
     
    void Dialog :: rester()
    {
            //this ->hide();
     
    		//MaFenetre *w = new MaFenetre(this);
    		MaFenetre *n = new MaFenetre();
     
            n->show();
    		this ->hide();
    	}
     
    void Dialog :: fermer()
    {
            //this ->hide();
    		//MaFenetre *r = new MaFenetre(this);
    		  MaFenetre *r = new MaFenetre();
     
    		r->hide();
    		this ->hide();
     
    		//MaFenetre->hide(); 
    }
     
    Dialog::~Dialog()
    {
        delete ui;
    }
    Dialog.h
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    #ifndef DIALOG_H
    #define DIALOG_H
    #include "ui_fenetreDialog.h"
    #include "ui_fenetre0.h"
     
    //#include <QImage>
    /*
    #include "Dialog.h"
    #include "MaFenetre.h"
    #include <highgui.h>
    #include <cv.h>
    #include <cxcore.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include <iostream>
    #include "cvaux.h"
    #include "highgui.h"
    #include <ctype.h>
    #include<math.h>
     
    #include <QFile.h>
    #include <stdio.h>
    #include <string.h>
    #include <QTextBrowser>
    #include <QDialog>*/
     
    namespace Ui {
        class Dialog;
    }
     
    class Dialog : public QWidget, private Ui::Dialog{
       // Q_OBJECT
    //public:
        //Dialog(QWidget *parent = 0);
     
     
    //class Dialog : public QDialog, public Ui::Dialog{
    	//class Dialog : public QDialog, Ui::Dialog{
    //class Dialog : public QDialog{
        Q_OBJECT
    public:
         Dialog(QWidget *parent = 0);
    	~Dialog();
     
     
     
    //public:
     
      private slots:
        void rester();
    	void fermer();
     
    	private:
      Ui::Dialog *ui;
     
    };
     
    #endif
    PS: Dialog c'est la boite de dialogue qui doit s'ouvrir quan je clique su Exit de MaFenetre, ensuit j'aurai le choix entre Yes or NO.
    evidement si je clique sur Yes MaFenetre doit se fermer et si c'est No elle doit rester, par contre Dialog doit se fermer dans les deux cas.

    Merci à tous

  7. #47
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    Bonjour,

    il faut redéfinir closeEvent

    tu ajoutes dans MaFenetre.h les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    protected:
        void closeEvent(QCloseEvent *event);
    et dans MaFenetre.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void MaFenetre::closeEvent(QCloseEvent *event)
    {
        // affichage dialog pour confirmation fermeture
        if (ton test)
    	{
            event->ignore(); // ignorer l'evenement close
        } 
    	else 
    	{
    		// autre traitement
        }
    }
    cordialement

  8. #48
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    merci pour votre réponse.
    dois je ignorer les le travail que j'ai fait et utiliser que seulement votre idée ?

    dois je garder ce slot ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void MaFenetre :: quitterapp()
    {
    	//MaFenetre:: *confiramtion= new MaFenetre(this);
        //QMessageBox::question(this, "confirmation", " ?tes-vous sur de vouloir quitter ?", QMessageBox::Yes | QMessageBox::No);
    	//confirmation->show();
      Dialog *j = new Dialog(this);
          j->show();
    }

  9. #49
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    à votre place, si Dialog ne sert que pour confirmer la fermeture, j'utiliserai QMessageBox

  10. #50
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    voila les mofids que j'ai fait dans MaFenetre:

    MaFenetre.cpp


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //------------------------------les slots personnalisés--------------------------------------------------------
    /*void MaFenetre :: quitterapp()
    {
    	//MaFenetre:: *confiramtion= new MaFenetre(this);
        //QMessageBox::question(this, "confirmation", " ?tes-vous sur de vouloir quitter ?", QMessageBox::Yes | QMessageBox::No);
    	//confirmation->show();
      Dialog *j = new Dialog(this);
          j->show();
    }*/
     
     
    void MaFenetre::closeEvent(QCloseEvent *event)
    {     int reponse = QMessageBox::question(this, "Interrogatoire", " Désirez-vous quitter l'application ?", QMessageBox::Yes | QMessageBox::No);
        // affichage dialog pour confirmation fermeture
        if (reponse == QMessageBox::No)
     
    	{
            event->ignore(); // ignorer l'evenement close
        } 
    	else 
    	{
    		// autre traitement
    		MaFenetre *r = new MaFenetre();
     
    		r->hide();
    		this ->hide();
     
     
        }
    }

    ça marche super bien quand je clique sur la petite croie rouge en haut a droite.
    j'aimerai faire la même chose dans le bouton Exit que j'ai mis dans le menu déroulant de Fichier.

    Je remarque que après avoir fait ce petit changement les boutons du menu ne fonctionnent plus, pk ?

  11. #51
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    il faut les connecter à closeevent

  12. #52
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    je ne comprends pas pourquoi tu mets ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	else 
    	{
    		// autre traitement
    		MaFenetre *r = new MaFenetre();
     
    		r->hide();
    		this ->hide();
     
     
        }

  13. #53
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    ah c'est bon, il fallait just que je met le solt : protected: void closeEvent(QCloseEvent *event); tout a fait a la fin après tous les autres slots.

    Avez vous une idée pour le bouton Exit du menu? j'aimerai aussi lui mettre une confirmation exactement la même chose que pour la petite croie rouge.

    j'ai la classe Dialogu et les slots mais ça ne marche.
    J'ai posté les fichiers un peu en haut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    else 
    	{
    		// autre traitement
    		MaFenetre *r = new MaFenetre();
     
    		r->hide();
    		this ->hide();
     
     
        }
    lorsque je clique sur Yes ma fenêtré principale MaFenetre se ferme

  14. #54
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    Pour le bouton Exit du menu, tu le connecte au slot closeEvent aussi et ça fera la même chose que la petite croix.

  15. #55
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    Je constate que vous aviez raison en fait ce n'ai pas la pêne de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MaFenetre *r = new MaFenetre();
     
    		r->hide();
    		this ->hide();
    ça marche!

    je ne voie pas comment le connecter au closeEvent. plus de détails svp
    Merci

  16. #56
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Points : 195
    Points
    195
    Par défaut
    connexion Exit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        connect(actionExit, SIGNAL(triggered()), qApp, SLOT(quit()));
    PS: tu remplaces actionExit par le nom que tu as donné à ton action.

  17. #57
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    dsl je crois que je me suis mal exprimé, je ss d'accord pour la connex je l'ai deja fait et ça ne me pas donner la boite de dialogue or moi je veux la confirmation.

    j'ai pas saisi quand vous m'avez dis que je dois le connecter au CloseEvent.
    cmt ça au closeEvent ?

  18. #58
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Vous êtes bien d'accord que l'événement closeevent est déclenché lorsque on "exit" l'application, car en faisant cela, la méthode "close" du QWidget principal est appelé ?

  19. #59
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut
    oui je ss d'accord.
    voila si je clique sur la petite croix rouge j'obtient la boite de dialogue ( pour la confirmation) et ça marche super bien.
    Mais quand clique sur le Exit du menu déroulant ça quitter sans confirmation.
    Comment je peux arranger ça ?

    Merci.

  20. #60
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Bon, et bien il suffisait de le vérifier, ce n'est pas vrai ^^. "quit" ne provoque pas de "close" apparemment. Donc il faut connecter Exit à this.close() au lieu de qApp.quit().

    http://qt.developpez.com/doc/latest/qwidget/#close

    Ca marche dans l'autre sens en fait.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [VI-2007] Ouverture d'une boîte de dialogue pour ouvrir un fichier
    Par Ariaar dans le forum Visio
    Réponses: 3
    Dernier message: 14/12/2012, 16h56
  2. Ouverture d'une boîte de dialogue avec Qt 4
    Par dourouc05 dans le forum Téléchargez
    Réponses: 0
    Dernier message: 01/11/2010, 22h37
  3. [ImageMagick] Message d'erreur à la génération d'une image jpg
    Par DadaWeb dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/06/2006, 13h42
  4. Erreur à l'ouverture d'une requete
    Par yoyo30 dans le forum Access
    Réponses: 3
    Dernier message: 06/10/2005, 07h58
  5. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20

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