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 :

Ouverture des fichiers récents


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut Ouverture des fichiers récents
    Bonjour,

    Je sais actuellement faire en sorte d'avoir une liste de fichiers récemment ouverts. Cela se fait facilement lorsqu'on suit l'exemple fourni par Qt.

    J'ai un menu File qui contient une action Load file pour ouvrir un fichier. Si j'ajoute un menu à cette action (le menu des fichiers récemment ouverts) lorsque je clique sur Load File, le signal triggered() n'est plus envoyé.

    Cela me permettrait de n'avoir qu'un seul menu pour gérer l'ouverture d'un nouveau fichier ou d'un fichier déjà ouvert.

    Y'a t'il un moyen d'y remédier ?

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Si vous connectez les actions au moment de leur ajout dans le menu, cela devrait résoudre votre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    QAction *act = menu->addAction(name);
    connect(act, SIGNAL(triggered()), this, SLOT(loadFile()));
     
    void Classe::loadFile()
    {
        if ((QAction *act = qobject_cast<QAction *>(sender()))
            load(act->text());
    }
    À moins que vous parliez du signal triggered(QAction *) de QMenu ?

    Bonne continuation,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    Pour resumer, je voudrais avoir un menu qui ressemble au Recent files de Qt Creator. Quand la souris passe sur l'action Recent files, le menu des fichiers récemment ouverts s'affiche et l'utilisateur peut choisir un fichier.
    Je souhaite avoir cette fonctionnalité. Au lieu d'appeler ce menu Recent files, je l'appelle Open file. Je souhaite que si l'utilisateur clique sur Open file, cela appelle le slot d'ouverture de fichier.
    Je combine ainsi dans un seul menu, l'ouverture d'un nouveau fichier et l'ouverture de fichiers récents.

    Le hic c'est que dès que j'ajoute un menu à un QAction lorsque je clique sur le QAction il n'émet plus le signal triggered().

  4. #4
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Citation Envoyé par nosleduc Voir le message
    Pour resumer, je voudrais avoir un menu qui ressemble au Recent files de Qt Creator. Quand la souris passe sur l'action Recent files, le menu des fichiers récemment ouverts s'affiche et l'utilisateur peut choisir un fichier.
    Je souhaite avoir cette fonctionnalité. Au lieu d'appeler ce menu Recent files, je l'appelle Open file. Je souhaite que si l'utilisateur clique sur Open file, cela appelle le slot d'ouverture de fichier.
    Je combine ainsi dans un seul menu, l'ouverture d'un nouveau fichier et l'ouverture de fichiers récents.

    Le hic c'est que dès que j'ajoute un menu à un QAction lorsque je clique sur le QAction il n'émet plus le signal triggered().
    Donc si je comprends bien, par "ajouter un menu à un QAction", vous entendez faire un act->setMenu(menu) au lieu de simplement faire un QMenu *recent = menu->addMenu("Open file...") ? Le cas échéant, j'aurais besoin d'un peu de code pour mieux saisir le problème.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. Ouverture des fichiers .csv
    Par Tibaldus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2007, 15h48
  2. [TP] Nettoyage des fichiers récents
    Par amine6441 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 05/04/2007, 18h03
  3. [VBA-E] Masquer l'ouverture des fichiers
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/02/2007, 16h32
  4. Ouverture des fichiers .bin
    Par Fredo02 dans le forum Autres Logiciels
    Réponses: 16
    Dernier message: 11/01/2007, 18h26
  5. [MFC] Ajout des fichiers récents dans un menu
    Par Choupinou dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2004, 16h47

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