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 :

Repérer la sélection d'une QMainWindow


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Repérer la sélection d'une QMainWindow
    Bonjour à tous.
    Je voudrais créer une application multifenêtres en Qt et je commence par faire une petite étude préalable. Je souhaite choisir entre 2 modèles : plusieurs instances indépendantes d'une classe dérivée d'une QMainWindow ou plusieurs QMainWindow dans une QMdiArea.
    Dans les deux cas j'utiliserais des QMainWindow et j'aurais besoin de savoir quelle est celle qui est au premier plan (je souhaiterais même avoir l'ordre, dans une liste, dans lequel ces QMainWindow ont été sélectionnées. Je gérerais par moi même la mise à jour de cette liste). Pour ce faire, il me faudra détecter la sélection par l'utilisateur d'une QMainWindow. Il me semble qu'il n'existe pas de signal émis lors de cette sélection et je voudrais savoir si quelqu'un à une idée pour repérer cette sélection.

    Merci d'avance.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Points : 742
    Points
    742
    Par défaut
    Salux !

    Deux fonctions :
    http://qt.developpez.com/doc/4.6/qwi...l#focusinevent
    http://qt.developpez.com/doc/4.6/qwi...#focusoutevent

    À partir de ça tu ne devrais pas avoir de difficultés à construire une liste ou pile statique.

    Par contre, j'ai du mal à voir l'intérêt de savoir quelle fenêtre est en premier ou non... Si ton but est d'en placer une au-dessus des autres sans que l'on puisse la mettre en arrière plan, tu as la propriété modal.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci manudwarf pour ta réponse.
    Ce souhaite connaitre l'ordre des fenêtres car mon application multi-fenêtres contiendra des fenêtres classiques et des fenêtres indépendantes contenant des outils. Je souhaite donc savoir, lors de la sélection d'un outil, sur quelle fenêtre je doit l'appliquer.
    J'ai testé d'utiliser la fonction mousePressEvent :
    http://qt.developpez.com/doc/4.6/qwi...ousepressevent
    Le problème est que cette fonction ne repère le clic de souris que sur la partie intérieure de la fenêtre, elle ne détecte pas le clic de souris sur la barre de titre ni la barre de menu de la fenêtre.
    Faut-il faire une modification d'un paramètre de la fenêtre que que cela soit possible ?

  4. #4
    Membre averti Avatar de vikki
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 292
    Points : 302
    Points
    302
    Par défaut
    Hello,
    Tu peux essayer d'installer un filtre d'évènements sur les widgets posant problème (fonction void QObject::installEventFilter ( QObject * filterObj ) ) pour prendre en compte les évènements souris.
    Sinon, je me demande si ton appli ne pourrait pas avantageusement tirer partie du Drag & Drop...

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Points : 742
    Points
    742
    Par défaut
    Citation Envoyé par _LBS_ Voir le message
    Le problème est que cette fonction ne repère le clic de souris que sur la partie intérieure de la fenêtre, elle ne détecte pas le clic de souris sur la barre de titre ni la barre de menu de la fenêtre.
    Pour le mousePressEvent oui, mais le focusEvent ?

Discussions similaires

  1. Sélection d'une plage de dates
    Par Bouanda dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/10/2004, 20h27
  2. Sélection d'une ligne dans un JTable
    Par dam21 dans le forum Composants
    Réponses: 3
    Dernier message: 28/07/2004, 12h57
  3. sélection d'une ligne DBGrid par clic
    Par duffman dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/05/2004, 13h45
  4. Désactiver la multi-sélection d'une grille
    Par Riko dans le forum Composants VCL
    Réponses: 6
    Dernier message: 17/06/2003, 09h47
  5. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57

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