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 :

QMenu & fichiers récents


Sujet :

Qt

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 15
    Points
    15
    Par défaut QMenu & fichiers récents
    Bonjour à tous,

    Je retrouve devant un petit problème dont je ne trouve pas de solution malgré mes différentes recherches. Le but c'est de remplir un QMenu de plusieurs QAction qui contient les ouvertures récentes. Mais là, apparait mon problème quand je clique sur le fichier récent (QAction) qui se trouve dans le QMenu, le signal n'est pas transmis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private:
        QList<QFile *> historiqueFichier;
    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
     
    void MainWindow::displayHistoriqueFichier() {
        QMenu *actionOuvertureRecente = ui->menuOuvertures_r_centes;
        QFile *file;
        QAction *recentFileActs[this->historiqueFichier.count()];
        actionOuvertureRecente->clear();
     
        for (int i=0; i<this->historiqueFichier.count(); i++) {
            file = this->historiqueFichier[i];
            recentFileActs[i] = new QAction(file->fileName(), this);
            recentFileActs[i]->setVisible(false);
            actionOuvertureRecente->addAction(recentFileActs[i]->text());
            connect(recentFileActs[i], SIGNAL(triggered()), this, SIGNAL(ouvrirFichierRecent()));
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void MainWindow::ouvrirFichierRecent() {
        QMessageBox::information(this, "test", "ouverture...");
        QAction *action = qobject_cast<QAction *>(sender());
        if (action)
            this->addTabFromFile(action->data().toString());
    }
    Que pensez-vous de ce problème? Sachant que quand je clique sur le fichier récent, le signal ne passe pas dans ouvrirFichierRecent().


    Merci

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 994
    Points : 222 449
    Points
    222 449
    Billets dans le blog
    133
    Par défaut
    Bonjour,

    Une petite erreur toute bête dans votre connect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connect(recentFileActs[i], SIGNAL(triggered()), this, SIGNAL(ouvrirFichierRecent()));
    Vous avez mis deux fois SIGNAL , au lieu d'avoir un SLOT en dernière position.

    ( Notez que Qt envoie un message dans la console ( ou autre sortie standart ) pour indiquer les problèmes avec connect )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Merci c'est niquel. Voici le code final :

    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
    void MainWindow::displayHistoriqueFichier() {
        QMenu *actionOuvertureRecente = ui->menuOuvertures_r_centes;
        QFile *file;
        QList<QAction *> recentFileActs;
        QAction *lastRecentFile;
        actionOuvertureRecente->clear();
     
        for (int i=0; i<this->historiqueFichier.count(); i++) {
            file = this->historiqueFichier[i];
            recentFileActs.append(new QAction(file->fileName(), this));
            recentFileActs[i]->setVisible(false);
            lastRecentFile = actionOuvertureRecente->addAction(recentFileActs[i]->text());
            connect(lastRecentFile, SIGNAL(triggered()), this, SLOT(ouvrirFichierRecent()));
        }
    }

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 994
    Points : 222 449
    Points
    222 449
    Billets dans le blog
    133
    Par défaut
    Je suis un peu curieux, qu'utilisez vous pour la sauvegarde des fichiers récents? un QSetting, je présume?

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    QList<QFile *> historiqueFichier;
    ???
    utilise plutôt un QStringList ou une QList<QFileInfo>

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

Discussions similaires

  1. Fixer le nombre de fichiers récent
    Par BoyzInDaProject dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2007, 15h22
  2. [TP] Nettoyage des fichiers récents
    Par amine6441 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 05/04/2007, 19h03
  3. Menu fichier récent
    Par ptitesouris dans le forum MFC
    Réponses: 3
    Dernier message: 06/09/2006, 16h04
  4. [VB6]Fichiers récents
    Par benoitl dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/04/2006, 13h16
  5. [MFC] Ajout des fichiers récents dans un menu
    Par Choupinou dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2004, 17h47

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