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 :

Changer la position d'un QLayout

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Changer la position d'un QLayout
    Bonjour à tous,

    J'ai réalisé un formulaire de saisie de données avec le QtDesigner, le soucis est maintenant que je souhaiterai que sa taille reste fixe quelle que soit la résolution de l'ordinateur qu'on utilise, et que celui-ci soit placé au centre de la fenêtre.

    Je n'ai aucun soucis à changer la position de QLabel ou autres QWidgets comme le titre ou le bouton OK, mais lorsqu'il s'agit de déplacer un QFormLayout, j'essaye d'utiliser la méthode setGeometry en créant un QRect avec les coordonnées qu'il me faut. Malheureusement rien ne se passe visuellement.

    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
     
        wf = 898;
        hf = 648;
        maxw = QApplication::desktop()->width();
        maxh = QApplication::desktop()->height();
        wm = (maxw-wf)/2;
        hm = (maxh-hf)/2;
     
        ui->setupUi(this);
     
        ui->formLayout->setGeometry(QRect(wm,hm+88,468,468));
        ui->formLayout_2->setGeometry(QRect(wm+508,hm+88,388,468));
        ui->Titre->setGeometry(maxw-wm-448,hm,311,81);
        ui->BoutonOK->setGeometry(wm+398,maxh-hm,121,51);
        ui->label->setGeometry(wm+638,hm+608,241,31);
    Grossièrement voilà ce que ça donne, j'agis directement sur les objets de l'ui vu que j'ai utilisé QtDesigner.

    Si quelqu'un avait une idée sur comment bouger ces layouts simplement cela m'aiderait énormément.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-être devrais-tu essayer avec setFixedSize().

    J'ai moi aussi très souvent ce genre de problèmes avec des fonctionnalités de rendu de fenêtre qui semblent ne rien faire (comme setSizePolicy par exemple). Du coup, j'utilise toujours les fonctions agissant directement sur la taille (size, weight, heigth) car ce sont les seules dont je suis certains qu'elle vont faire quelque chose.

  3. #3
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Le principe des layouts Qt est justement de s'adapter aux différentes résolutions, d'étirer certains éléments etc. Passer par la géométrie et des valeurs "en dur" va vite devenir lourd et source de bugs.
    Si tu es certain de vouloir une taille fixe (il faut donc être sûr que ton texte sera bien rendu selon le système, la police etc), tu peux fixer des tailles minimum et/ou maximum à tes widgets. Le layout s'adaptera aux widgets et à la fenêtre.

    Dans QtDesigner tu peux insérer des "spacers" pour créer de l'espace vide qui va pousser les widgets/layouts. Si tu veux centrer ton layout, place un spacer sur chaque côté de ton layout (gauche, droite, haut, bas) et ils vont le pousser vers le centre. Là aussi tu peux jouer avec les QSizePolicy pour qu'ils le poussent au maximum (expanding sur les spacers) ou bien prennent seulement une part estimée par Qt équitable (prefered).

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

Discussions similaires

  1. [VB.NET/C#.NET] Changer la Position de la Mouse
    Par ThanosT dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/04/2006, 22h56
  2. Changer la position de la souris
    Par Mehdi Feki dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/04/2006, 08h35
  3. changer la position d'un élement
    Par ouquoi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/03/2006, 14h17
  4. [MySQL] Changer la position d'affichage
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 28/02/2006, 12h05
  5. [MFC]Changer la position du élement du menu
    Par annedjomo dans le forum MFC
    Réponses: 1
    Dernier message: 02/09/2005, 06h20

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