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 :

Mise à jour de QStringList pour QComboBox

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1
    Par défaut Mise à jour de QStringList pour QComboBox
    Bonjour,

    J'ai une QStringList qui se met à jour en lisant un fichier dans le constructeur de la fenêtre principale.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    QString fileList ="liste.txt";
        QFile fichierList(fileList);
        fichierList.open(QIODevice::ReadOnly | QIODevice::Text);
        QTextStream flux(&fichierList);
        QString lectureLigne;
     
     
        while(!flux.atEnd())
        {
            lectureLigne = flux.readLine();
            listeCategorie<<lectureLigne;
        }
    Ensuite j'ai ajouté une classe héritant de QDialg permettant d'ajouter un élement à cette QStringList :
    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
    QString fileName = nomCategorie->text() + ".txt";
        QFile fichier(fileName);
        fichier.open(QIODevice::WriteOnly | QIODevice::Text);
     
        QString fileList = "liste.txt";
        QFile fichierList(fileList);
        fichierList.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
        QTextStream flux(&fichierList);
     
        flux<<nomCategorie->text();
        flux<< '\n' ;
        m_liste<<nomCategorie->text();
     
        fichierList.close();
        this->close();
    Donc ceci va ajouter un élément à la QStringList, m_liste correspondant à la qStringList passée par référence, de plus j'écris cette valeur dans le fichier lue dans le code précédant.


    Ensuite j'ai crée une autre QDialog dans laquelle j'ai mit une qcombobox avec la QStringList via additems :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FenAjouter::FenAjouter(QStringList &listeCategorie, QWidget *parent) : QDialog(parent)
    {
      m_categorie=listeCategorie;
      QGridLayout *gridlayout = new QGridLayout(this);
     
        form = new QFormLayout;
        verset = new QTextEdit;
        referance= new QLineEdit;
        ok = new QPushButton("Entrer");
        annuler = new QPushButton("Annuler");
        categorie = new QComboBox;
        categorie->addItems(m_categorie);
    Le problème c'est que quand j'ajoute un élément à la QStringList et que ensuite j'ouvre la deuxième QDialog avec la QComboBox celle-ci n'est pas mise à jour, en revanche si je ferme le programme et que je le relance alors là c'est bon la QComboBox comporte bien tous les éléments.

    Merci beaucoup pour votre aide

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je propose de rajouter une fonction "update()" (ou similaire) qui se charge de vider la combobox et de remettre la QStringList à jour pour y réinsérer tous les éléments (ainsi que les nouveaux).
    (Note : on doit pouvoir faire mieux, sans vider tous les éléments).
    Ainsi, lorsque vous fermez votre QDialog qui met à jour la liste, vous appelez cette fonction (un connect fera l'affaire) et hop, tout est à jour
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Mise à jour de VBA pour Access
    Par nicoaix dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/04/2008, 16h30
  2. mise à jour champs sql pour chaque ligne
    Par opsi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/03/2008, 22h44
  3. Réponses: 0
    Dernier message: 05/03/2008, 17h16
  4. [2000] Requête de mise à jour : je bloque pour un critère
    Par DamKre dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 16/08/2007, 19h55

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