Question

Comment puis-je faire un QVector (ou d'une autre classe de conteneur) d'un nombre dynamique de widgets, tels que QPushButton ou QComboBox dans Qt 4?

Je l'ai utilisé ce qui suit dans le constructeur de ma classe de fenêtre:

QVector<QComboBox*> foo; // Vector of pointers to QComboBox's

Et maintenant, je veux le remplir avec un certain nombre de contrôles qui peuvent changer de façon dynamique:

for(int count = 0; count < getNumControls(); ++count) {
    foo[count] = new QComboBox();
}

Je l'ai cherché pendant des heures à essayer de trouver la réponse à cette question. Les forums Qt mentionnent faire un QPtrList, mais cette classe n'existe plus en Qt4. Je vais essayer plus tard pour obtenir la valeur de texte de chaque indexation à l'aide de style tableau ou la fonction .at().

J'apprécierais vraiment un exemple de déclarer, initialiser et peuplant une structure de données d'un QWidgets (QComboBox, QPushButton, etc.)

Était-ce utile?

La solution

ici vous allez:)

#include <QWidget>
#include <QList>
#include <QLabel>
...
QList< QLabel* > list;
...

list << new QLabel( parent, "label 1" );
..
..

foreach( QLabel* label, list )  {
label->text();
label->setText( "my text" );
}

Si vous essayez juste d'obtenir un exemple simple pour travailler, il est important que vos widgets ont un parent (pour le contexte / nettoyage) fins.

Hope this helps.

scroll top