Bonjour,
J'ai une QStringList qui se met à jour en lisant un fichier dans le constructeur de la fenêtre principale.
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 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; }
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.
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();
Ensuite j'ai crée une autre QDialog dans laquelle j'ai mit une qcombobox avec la QStringList via additems :
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.
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);
Merci beaucoup pour votre aide
Partager