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 :

Placement automatique de la fenêtre

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    fdghg
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : fdghg
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Par défaut Placement automatique de la fenêtre
    Bonjour, je souhaite que dans mes GUI Qt les fenêtres que j'appelle se placent automatiquement dans la(au niveau) fenêtre parente

    Par exemple

    Dans Firefox si je fais Outils -> Option

    La fenêtre Option apparaitra TOUJOURS au niveau de la fenêtre de Firefox c'est à dire, dans ces proportions

    Alors que dans mes GUI à moi
    elle s'affiche aléatoirement en haut à gauche de l'écran.

    Comment faire ?

  2. #2
    Membre Expert

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    T'as une méthode move(x,y) pour bouger un élément où tu veux relativement à son parent (ou à l'écran s'il n'a pas de parent).

    A partir de là, je connais pas les liens de parentés dans ton application mais tu peux te débrouiller à partir de "savants" calculs en prenant x()/y(), ou top()/bottom()/left()/right() pour les positions, et width()/height() pour les dimensions, de ta fenêtre de référence.

    Par exemple, tu veux placer la fenêtre f2 par rapport à f1, et elles n'ont aucun lien de parenté entre elles :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    f2.move(f1.x() + (f1.width() - f2.width())/2, f1.y() + (f1.height() - f2.height())/2);
    (si je ne me trompe pas).
    Après il y a peut-être plus simple mais je ne pense pas.

    http://qt.developpez.com/doc/4.7/fen...e-des-fenetres

  3. #3
    Membre actif
    Homme Profil pro
    fdghg
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : fdghg
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Par défaut
    Justement, je preferais savoir comment le faire avec un lien de parenté entre les fenêtre..

    Par exemple j'envoie le pointeur this et après, j'en fait quoi dans le constructeur de ma fenêtre f2 ?

  4. #4
    Membre Expert

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    J'ai déjà répondu à ta question. Relis attentivement mon post.

  5. #5
    Membre actif
    Homme Profil pro
    fdghg
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : fdghg
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Par défaut
    Oui mais c'est pas un véritable LIEN entre la fenêtre et la fille
    J'aimerais quelle soit vraiment lier pour aussi gerer les fuites de mémoires

    Une idée de ce que je doit faire avec this de f1 dans constructeur f2 ?

  6. #6
    Membre Expert

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Peu importe que ce soit entre f1 et f2 ou entre nimportequelnom1 et nimportequelnom2 ou entre this et parentWidget().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move(parentWidget().width() - width())/2, (parentWidget().height() - height())/2);
    Tu remarques que j'ai enlevé les x() et y() vu que comme je l'ai expliqué, le positionnement est relatif au parent. Est-ce que tu comprends mieux ? (ne copie pas bêtement le morceau de code).

Discussions similaires

  1. Ouverture automatique d'une fenêtre
    Par imad1903 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/02/2008, 11h43
  2. fermeture automatique d'une fenêtre.
    Par darkageof62 dans le forum Langage
    Réponses: 8
    Dernier message: 21/05/2007, 11h32
  3. Réponses: 3
    Dernier message: 20/09/2006, 13h12
  4. Ouverture automatique d'une fenêtre modal
    Par lodan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/09/2006, 22h24
  5. Destruction automatique d'une fenêtre d'attente
    Par Depteam1 dans le forum MFC
    Réponses: 4
    Dernier message: 20/09/2005, 13h40

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