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

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2019
    Messages : 10
    Points : 4
    Points
    4
    Par défaut QInputDialog::getText : longueur maximale du champ
    Bonjour,

    Je travail sur un proget Qt est mon problème est le suivant:

    J'essaie désespérément de trouver une solution pour limiter le nombre de caractère a saisir dans un "QInputDialog::getText"

    Avec un QLineEdit, on utilise la méthode maxLenght, mais la pour "Qt QInputDialog" je sèche!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void TW_S_Rck::renameTextBank()
        {
            bool ok = false;
            int index = listeDeroulanteBank->currentIndex();
            QString buff = nameBank[index];
     
            nameBank[index] = QInputDialog::getText(this,"Rename Bank","",QLineEdit::Normal, QString("%1").arg(nameBank[index]), &ok);
     
            if(ok && !nameBank[index].isEmpty()){listeDeroulanteBank->setItemText(index,nameBank[index]);}
            else{nameBank[index] = buff;}
        }
    Merci d'avance pour votre aide.

    Cordialement, Antoine

  2. #2
    Modérateur

    Avatar de Winjerome
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    10 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 489
    Points : 60 956
    Points
    60 956
    Par défaut
    Bonsoir,

    QString("%1").arg(nameBank[index]) ou plus directement : nameBank[index] si tu ne comptes rien concaténer autour.

    Tu as moyen d'aller chercher le QLineEdit utilisé en interne avec la fonction membre findChild() si tu construis manuellement la boîte de dialogue au lieu d'appeler la fonction membre statique getText() qui le fait pour toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        QInputDialog dialog(this);
        dialog.setInputMode(QInputDialog::TextInput);
        dialog.setWindowTitle("Rename Bank");
        dialog.setLabelText("");
        dialog.setTextValue(nameBank[index]);
     
        auto lineEdit = dialog.findChild<QLineEdit *>();
        lineEdit->setMaxLength(/* . . . */);
     
        if (dialog.exec() == QDialog::Accepted) {
            /* chaîne saisie = */ dialog.textValue();
        } else {
            // Saisie annulée
        }
    Avant de poser votre question : FAQ, Tutoriels et recherche sur le forum
    Une erreur ? Messages d'erreur et avertissements
    "Ça ne marche pas" n'apporte aucune information utile permettant de vous aider. Expliquez clairement votre problème (erreurs entières, résultat souhaité vs obtenu...).
    En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
    L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
    Mes extensions FireDVP (Firefox), ChroDVP (Chrome) : suivi des nouveaux messages, boutons/raccourcis et bien plus !

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2019
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Merci beaucoup pour cette réponse complète et rapide!
    Je cherchais effectivement à faire appel à QLineEdit en interne mais je ne savais pas comment! Je teste tout ça et vous dit ce qu'il en est!

    Cordialement, Antoine

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2019
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Le compilateur plante sur ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    auto lineEdit = dialog.findChild<QLineEdit *>();
    lineEdit->setMaxLength(16);
    erreur : 'lineEdit' does not name a type
    erreur : 'lineEdit' was not declared in this scope

    ??

  5. #5
    Modérateur

    Avatar de Winjerome
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    10 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 489
    Points : 60 956
    Points
    60 956
    Par défaut
    Faut se mettre à jour auto est un mot-clé de la norme C++11 (2011).
    Soit tu compiles (au moins) en C++11, soit tu le remplaces auto par QLineEdit *.
    Avant de poser votre question : FAQ, Tutoriels et recherche sur le forum
    Une erreur ? Messages d'erreur et avertissements
    "Ça ne marche pas" n'apporte aucune information utile permettant de vous aider. Expliquez clairement votre problème (erreurs entières, résultat souhaité vs obtenu...).
    En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
    L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
    Mes extensions FireDVP (Firefox), ChroDVP (Chrome) : suivi des nouveaux messages, boutons/raccourcis et bien plus !

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    octobre 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2019
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci ca marche nickel!
    Un grand merci pour vos explication et votre temps!

    Cordialement, Antoine

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/11/2007, 04h31
  2. Longueur d'un champs TEXT
    Par PoZZyX dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/09/2005, 16h39
  3. Réponses: 1
    Dernier message: 03/11/2004, 15h55
  4. Réponses: 3
    Dernier message: 04/08/2004, 16h09
  5. select en fonction de la longueur d'un champ
    Par blackeagle1 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/07/2004, 20h42

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