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 :

changement d'ordre d'affichage des widgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut changement d'ordre d'affichage des widgets
    Bonjour,

    Voila j'ai plusieurs Widgets (QFrames) sur le layout de ma fenêtre pincipale(QMainWindow),
    parfois ces widgets se superposent et je souhaite modifier leur ordre d'affichage dynamiquement.
    (ex: je souhaite que frame1 se superpose à frame2 puis l'inverse)

    Comment puis-je faire cela?

    Merci pour votre aide.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    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 035
    Par défaut
    Citation Envoyé par maxence51 Voir le message
    Bonjour,

    Voila j'ai plusieurs Widgets (QFrames) sur le layout de ma fenêtre pincipale(QMainWindow),
    parfois ces widgets se superposent et je souhaite modifier leur ordre d'affichage dynamiquement.
    (ex: je souhaite que frame1 se superpose à frame2 puis l'inverse)

    Comment puis-je faire cela?
    Quel layout utilise tu?

    que veut tu dire par superpose?

  3. #3
    Membre confirmé
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Par défaut
    Salut,
    Je débute aussi en Qt, mais j ai pas mal bossé les "layout" au "tout début".
    Quand tu dis "superposé", est ce que tu veux dire qu'un QPushButton se pose sur un autre par exemple?
    Si tu peux nous montrer un morceau de ton code, on pourra surement t'aider.

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    par superposer j'entend l'un au dessus de l'autre en terme d'affichage à l'écran.

    mon layout est celui par défaut de ma QMainWindow.
    j'y accède avec myMainWindow.layout()

    mes widgets sont des QFrames qui contiennent des images.

    en fait j'ai réussi avec les méthodes raise() et lower() qui permette de basculer des widgets au premier et à l'arrière plan.

    maintenant j'ai un autre problème.
    Disons maintenant que j'ai une pile de 5 widgets.

    J'affiche donc tous les eléments de ma pile l'un après l'autre dans l'ordre.
    puis j'aimerais afficher les 4 premiers composants mais pas le 5ème (le plus haut dans la pile, cad celui qui se trouve normalement au premier plan)
    puis les 3 premiers etc....

    j'ai essayer de supprimer un widget du layout removeWidget(MonWidget) mais il reste visible à l'écran.

    comment pourrais je faire?

  5. #5
    Membre chevronné

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Par défaut
    Tu peux le cacher avec hide().

  6. #6
    Membre confirmé
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Par défaut
    Bon, pour ma part je te conseillerai de faire la chose suivante

    Tu créés tous tes Widgets en hide() :
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tonWidget1->hide();
    tonWidget2->hide();
    tonWidget3->hide();
    Ensuite pour chaque étape tu fais un if ou un connect :
    exemple :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    if (condition1) {
        tonWigdet1->show();
        tonWidget2->hide();
        tonWidget3->hide();
        tonWidget4->hide();
        tonWidget5->hide();    
    }
    if (condition2) {
        tonWigdet1->hide();
        tonWidget2->show();
        tonWidget3->hide();
        tonWidget4->hide();
        tonWidget5->hide();
    }
    if (condition3) {
        tonWigdet1->hide();
        tonWidget2->hide();
        tonWidget3->show();
        tonWidget4->hide();
        tonWidget5->hide();
    }
    if (condition4) {
        tonWigdet1->hide();
        tonWidget2->hide();
        tonWidget3->hide();
        tonWidget4->show();
        tonWidget5->hide();
    }
    if (condition5) {
        tonWigdet1->hide();
        tonWidget2->hide();
        tonWidget3->hide();
        tonWidget4->hide();
        tonWidget5->show();
    }
    if (condition6) {
        tonWigdet1->hide();
        tonWidget2->hide();
        tonWidget3->hide();
        tonWidget4->show();
        tonWidget5->hide();
    }
    if (condition7) {
        tonWigdet1->hide();
        tonWidget2->hide();
        tonWidget3->show();
        tonWidget4->hide();
        tonWidget5->hide();    
    }
    if (condition8) {
        tonWigdet1->hide();
        tonWidget2->show();
        tonWidget3->hide();
        tonWidget4->hide();
        tonWidget5->hide();
    }
    if (condition9) {
        tonWigdet1->show();
        tonWidget2->hide();
        tonWidget3->hide();
        tonWidget4->hide();
        tonWidget5->hide();
    }
    Bon comme ça s'est pas tres explicite, mais si tu postes la partie de ton code qui te pose probleme, je pense que je pourrais t aider...
    Bon courage et tiens nous au courant

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    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 035
    Par défaut
    Citation Envoyé par maxence51 Voir le message
    par superposer j'entend l'un au dessus de l'autre en terme d'affichage à l'écran

    ....

    en fait j'ai réussi avec les méthodes raise() et lower() qui permette de basculer des widgets au premier et à l'arrière plan.
    Dsl mais pour moi cela n'as rien à voire....

    Peut tu faire un petit schéma ou une image pour expliquer??

  8. #8
    Membre confirmé
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 220
    Par défaut
    Je pense qu'il souhaite faire un peu un principe de chenillard.
    Enfin si j ai bien compris mais j avoue que ce n'est pas tres clair pour moi non plus
    Un bout de code serait le bienvenu pour un debut d explication.

    Merci

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

Discussions similaires

  1. Connaitre l'ordre d'affichage des div
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 12h40
  2. Ordre d'affichage des formulaires
    Par cdumas dans le forum Access
    Réponses: 3
    Dernier message: 04/05/2006, 12h15
  3. [SQL] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Oracle
    Réponses: 20
    Dernier message: 28/02/2006, 23h00
  4. [Reports 6] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Reports
    Réponses: 2
    Dernier message: 17/02/2006, 16h21
  5. Réponses: 5
    Dernier message: 08/03/2005, 13h22

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