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 Quick Discussion :

Disposition et dimension d'une image [Débuter]


Sujet :

Qt Quick

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut Disposition et dimension d'une image
    Bonjour,

    Pourriez vous m'expliquer pourquoi ce code permet d'avoir une dimension demandée d'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Image {
             height: 50; width: 100
            source: "images/flags/french.png"
        }

    alors que celui ci non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    GridLayout {
        Image {
             height: 50; width: 100
            source: "images/flags/french.png"
        }
    }
    Merci pour votre aide.
    François

  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
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonjour,

    Le principe des layouts est d'adapter leur contenu aux dimensions prises par le layout, d'où la distinction entre les deux. Si vous utilisez le type Grid et non le type GridLayout, par exemple, vous n'aurez pas de redimensionnement de vos éléments graphiques et obtiendrez deux résultats identiques. Un petit détail pas forcément pertinent par rapport à votre question : si vous ne spécifiez pas la longueur et la largeur de votre image hors d'un layout, le composant prendra la taille de l'image chargée.

    Bonne soirée,
    Louis
    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 du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut
    Merci pour votre réponse.

    Si je comprends bien votre réponse, si je veut garder un GridLayout, il faut que je modifie la taille du layout complet (et donc des cellules du layout) afin d'obtenir la taille désirée pour mon image ?

    J'ai effectué ce test pour afficher une page de paramètres avec différentes informations (nom d'utilisateur, mot de passe etc...) Je voulais justement utilisé un GridLayout pour essayer de gérer les différences d'affichage entre différentes résolution d'écran. Est-ce vraiment nécessaire où est-ce qu'un Grid est suffisant ?

  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
    Points : 5 545
    Points
    5 545
    Par défaut
    Bonsoir,

    Je vous avouerai qu'étant quelqu'un qui code en QML depuis la version 1.0, je n'ai pas vraiment pris le temps de me renseigner sur les layouts sur le point de vue de QML, je passe plutôt par les anchors pour gérer mes affichages. Lorsque je code des formulaires, j'utilise un composant Column avec un spacing donné dans lequel je positionne des champs (généralement des Item, contenant par exemple un Text, le label - d'une longueur fixe -, et un LineEdit - ancré de la droite du label à la droite du parent -, un composant que j'ai écrit à partir de TextInput et d'un Rectangle pour avoir le design qui me plait). Cependant, avec les dernières versions, j'imagine que la solution d'un GridLayout doit proposer des moyens bien plus intéressants et plus simples.

    Dans le cadre de votre utilisation, vous semblez souhaiter que votre composant Image ne soit pas redimensionné à l'intérieur de votre layout. Avez-vous considéré ce code-ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Item {
        Image {
            anchors.centerIn: parent
            source: "images/flags/french.png"
        }
    }
    De là, si vous souhaitez limiter la taille d'une colonne ou ce genre de chose, il y a pas mal de propriétés dans le type de base Layout qui spécifient ça.

    Bonne soirée à vous,
    Louis
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut
    Effectivement, mettre l'image dans un Item permet de fixer sa dimension dans le Gridlayout.

    Merci beaucoup !

  6. #6
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Si ça peut être utile, j'avais traduit un article qui présentait les layouts en QML : http://qt-digia.developpez.com/tutor...-quick/layouts.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut
    Merci pour le lien. Je regarde ça !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 109
    Points : 55
    Points
    55
    Par défaut
    J'ai trouvé une solution plus adapté au GridLayout qui me permet sur une même ligne d'avoir un label à gauche et un élément à droite.
    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
     
     GridLayout {
            id: grid
            opacity: 0.99
            columns: 4
            rows: 10
     
            //autre éléments non détaillés....
     
            Label{id: flagLabel; text: "Flag :";  Layout.columnSpan: grid.columns-1;  Layout.fillWidth: true; Layout.preferredWidth: Layout.maximumWidth;  }
            Image {
                Layout.maximumHeight: 50;
                Layout.preferredWidth: 100;
                fillMode: Image.PreserveAspectFit
                Layout.alignment: Qt.AlignRight
                Layout.fillWidth: false;
                Layout.fillHeight: false;
                source: "images/flags/french.png"
            }
     
          }
    Merci à tous pour vos réponses

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

Discussions similaires

  1. [ImageMagick] Obtenir les dimensions d'une image externe?
    Par Death83 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/01/2006, 09h57
  2. [Image] Connaitre les dimensions d'une image sans la charger
    Par FredN dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/01/2006, 12h06
  3. changer la dimension d'une image dans un tableau
    Par robocop2776 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2005, 15h20
  4. [VB6] [Graphisme] Dimensions d'une image au saving
    Par jeanseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/12/2002, 19h09

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