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 :

Problème pour relier deux fenêtres grâce à un bouton

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 145
    Par défaut Problème pour relier deux fenêtres grâce à un bouton
    Bonjour, voilà j'aimerai que depuis ma fenêtre principale (MainWindow), je puisse accéder en cliquand sur un bouton à une 2ème fenêtre (Fichiers) qui va me permettre de saisir 5 fichiers.
    Le slot du bouton pour accéder à la 2ème page fonctionne mais sur la 2ème page j'ai des slots à utiliser (pour rentrer un fichier grâce à une arborescence) mais je ne peux pas y accéder...

    Voici mon code :

    MainWindow.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
     
    class MainWindow : public QDialog
    {
        Q_OBJECT
     
        public:
        MainWindow(QWidget *parent = 0);
     
     
        private slots:
            void calcul();
            void ouvrirFichier();
            void ouvrirFichierPosX();
            void ouvrirFichierPosY();
            void ouvrirFichierPosZ();
            void ouvrirFichierPosTheta1();
            void ouvrirFichierPosTheta2();
     
        private:
            Ui::MainWindow uiMW;
     
     
    };

    MainWindow.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
    MainWindow::MainWindow(QWidget *parent) : QDialog()//Widget(parent)
    {
        setFixedSize(820, 750);
        uiMW.setupUi(this);
        connect(uiMW.BoutonValider, SIGNAL(clicked()), this, SLOT(calcul()));
        connect(uiMW.BoutonFichiers, SIGNAL(clicked()), this, SLOT(ouvrirFichier()));
    }
    
    void MainWindow::ouvrirFichier()
    {
        Fichiers fic(this);
        if(fic.exec()==QDialog::Accepted)
        {
            connect(cheminFichierPosX, SIGNAL(clicked()), this, SLOT(ouvrirFichierPosX()));  // Le problème es ici je ne peux pas accéder à cheminFichierPosX
    
        }
    
    }
    Fichiers.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
    class Fichiers : public QDialog
    {
        Q_OBJECT
     
        public:
        Fichiers(QWidget *parent = 0);
     
        private slots:
     
            void ouvrirFichierPosX();
            void ouvrirFichierPosY();
            void ouvrirFichierPosZ();
            void ouvrirFichierPosTheta1();
            void ouvrirFichierPosTheta2();
     
        private:
            Ui::Fichiers uiFic;
     
    };
    Fichiers.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
    Fichiers::Fichiers(QWidget *parent) : QDialog(parent)
    {
        uiFic.setupUi(this);
    }
     
    void Fichiers::ouvrirFichierPosX()
    {
        QString fichierPosX = QFileDialog::getOpenFileName(this, "Ouvrir le fichier de défaut pour la position x", "*.csv");
        uiFic.cheminFichierPosX->setText(fichierPosX);
    }
     
    void Fichiers::ouvrirFichierPosY()
    {
        QString fichierPosY = QFileDialog::getOpenFileName(this, "Ouvrir le fichier de défaut pour la position y", "*.csv");
        uiFic.cheminFichierPosY->setText(fichierPosY);
    }
     
    void Fichiers::ouvrirFichierPosZ()
    {
        QString fichierPosZ = QFileDialog::getOpenFileName(this, "Ouvrir le fichier de défaut pour la position z", "*.csv");
        uiFic.cheminFichierPosZ->setText(fichierPosZ);
    }
     
    void Fichiers::ouvrirFichierPosTheta1()
    {
        QString fichierPosTheta1 = QFileDialog::getOpenFileName(this, "Ouvrir le fichier de défaut pour la position theta1", "*.csv");
        uiFic.cheminFichierPosTheta1->setText(fichierPosTheta1);
    }
     
    void Fichiers::ouvrirFichierPosTheta2()
    {
        QString fichierPosTheta2 = QFileDialog::getOpenFileName(this, "Ouvrir le fichier de défaut pour la position theta2", "*.csv");
        uiFic.cheminFichierPosTheta2->setText(fichierPosTheta2);
    }


    Merci de votre aide, c'est urgent.

  2. #2
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Salut,

    Si j'ai bien compris ce que tu veux faire, la connection suivante devrait etre faites dans le contructeur de la classe Fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     connect(cheminFichierPosX, SIGNAL(clicked()), this, SLOT(ouvrirFichierPosX()));
    Là ou tu l'as mis 'this' correspond à ta fenetre principale et non 'Fichier'. Mais attention 'fic' va etre detruit à la sortie de la fonction membre 'ouvrirFichier'.
    Alors tu devrais déclaré fic comme pointeur dans la class MainWindows et ainsi ca fonctionnera.

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 145
    Par défaut
    Non la connection suivante ne doit pas etre faite dans le constructeur de la classe Fichier.
    Cette connection se fait lorsque l'utilisateur clique sur le bouton 'ouvrir fichier pos x" (bouton présent sur la fenetre fichiers...).

    Je n'ai pas compris comment tu veux procéder, montre moi le code au moins...

  4. #4
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Je n'ai pas de code à te montrer parce qu'il y a plein de méthodes différentes pour faire ce que tu veux faire. Il faut juste respecter les regles des connections. Dans la tienne 'this' correspond à MainWindows alrors 'ouvrirFichierPosX' appartient à la classe 'Fichier', je pense que tu comprends que cela ne peut pas fonctionner. En mode debug tu auras un message tindiquant que MaintWindows ne posséde pas de slot nomé 'ouvrirFichierPosX'

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

Discussions similaires

  1. Probléme pour relier un bouton à un clip (for,id)
    Par artkabis dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 22/11/2008, 20h15
  2. Problème pour comparer deux mots
    Par Fredo123456 dans le forum C
    Réponses: 4
    Dernier message: 18/02/2008, 22h25
  3. Réponses: 1
    Dernier message: 27/08/2007, 09h02
  4. Réponses: 4
    Dernier message: 23/07/2007, 13h38
  5. Problème pour lier deux tables
    Par balabonov dans le forum Access
    Réponses: 8
    Dernier message: 21/12/2005, 13h13

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