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 :

QLineEdit invisible dans un QFormLayout


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut QLineEdit invisible dans un QFormLayout
    Bonjour,

    Je sollicite un peu de votre aide concernant le remplissage d'un QFormLayout. En fait, je souhaite remplir ce layout dynamiquement (en fonction de plusieurs choses), à l'aide de données que je récupère depuis une BDD.
    Jusque là tout va bien, la lecture dans la base s'effectue correctement, pas de problème.

    Le souci se situe au niveau de l'affichage, je remplis mon layout "ligne par ligne", à l'aide de la méthode addRow, comme ceci :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QLineEdit* maLineEdit = new QLineEdit("Ma valeur de base");
    maLineEdit->setReadOnly(true);
    ui.monFormLayout->addRow(new QLabel("Label de la ligne"), maLineEdit);

    Le remplissage s'effectue correctement, j'ai bien mon label à gauche de chaque ligne, mais le LineEdit ne s'affiche pas, laissant ma fenêtre avec un gros vide à côté du layout.
    Bien sûr, j'ai déjà essayé de forcer la visibilité de mon LineEdit (avec un setVisible), mais rien n'y fait...

    Pourriez-vous m'aider svp ?

  2. #2
    Membre expérimenté
    Avatar de frifri59
    Inscrit en
    Décembre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2009
    Messages : 98
    Par défaut
    Peux tu nous en dire un peu plus sur ton "ui" stp ?

  3. #3
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Mon ui est mon interface graphique pré-dessinée avec Qt Designer.
    Elle contient uniquement un QHBoxLayout composé d'un spacer horizontal et de deux boutons à droite, un spacer vertical au dessus, surplombé par mon form layout.

    C'est assez rudimentaire, je doute que ce soit cela qui joue. Surtout qu'à l'exécution, mon layout se remplit bien, et la fenêtre s'agrandit bien en fonction du nombre de row placées dans mon layout.
    Je comprends juste pas pourquoi mes LineEdit sont invisibles

  4. #4
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Bon... J'ai trouvé l'erreur... une erreur très bête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui.monFormLayout->addRow(new QLabel("Label de la ligne"), maLineEdit));
    Cette parenthèse est en fait très mal placée, erreur d'inattention... Dans mon addRow, je ne faisais en fait qu'ajouter un Label, c'est tout... à cause de cette parenthèse, mon QLineEdit définissait en fait le parent de mon Label, et non le composant pour mon layout...
    Donc facile à corriger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui.monFormLayout->addRow(new QLabel("Label de la ligne")), maLineEdit);
    Encore fallait-il le voir

  5. #5
    Membre expérimenté
    Avatar de frifri59
    Inscrit en
    Décembre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2009
    Messages : 98
    Par défaut
    Heu...
    Pour moi il y a toujours une parenthèse de trop dans ton deuxième exemple non ?

  6. #6
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    En effet
    J'ai voulu allégé le code avant de le poster ici du coup on voit même pas l'erreur...

    Ici est l'erreur (c'est le .c_str() qui a fait que je ne voyais pas le souci) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui.monFormLayout->addRow(new QLabel(uneString.c_str(), maLineEdit));
    Et la ligne corrigée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ui.monFormLayout->addRow(new QLabel(uneString.c_str()), maLineEdit);

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

Discussions similaires

  1. Un de mes ordi est invisible dans le voisinnage réseau
    Par beegees dans le forum Administration
    Réponses: 3
    Dernier message: 10/12/2005, 13h34
  2. rectangles invisibles dans fireworks
    Par allowen dans le forum Autres langages pour le Web
    Réponses: 8
    Dernier message: 12/08/2005, 10h44
  3. [JList] [JScrollPane] JScrollPane invisible dans mon applet?
    Par Bobsinglar dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 02/06/2005, 15h06
  4. explo de BD : zone de saisie SQL invisible dans
    Par sebitor dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/03/2004, 17h39

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