Problème de suppression d'un QWidget
Bonjour à toutes et à tous, voila mon problème.
J'ai créé une classe héritant de QWidget, contenant différents élément, ceci me permettant de créer de multiples objets dans ma fenêtre principal.
Mais lorsque je veux supprimer un objet de cette classe, ça ne fonctionne pas.
Voici ma classe que je nommerai A (simplifier au max):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class A : public QWidget
{
Q_OBJECT
public:
A(QGridLayout *_parameters, double _x, double _y, int _pos, QWidget *parent = 0);
~A();
private:
QDoubleSpinBox *xTarget;
QDoubleSpinBox *yTarget;
}; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
A::A(QGridLayout *_parameters, double _x, double _y, int _pos, QWidget *parent)
: QWidget(parent)
{
QLabel *targetLabel = new QLabel("Target :");
_parameters->addWidget(targetLabel, _pos, 0);
xTarget = new QDoubleSpinBox;
_parameters->addWidget(xTarget, _pos, 1);
yTarget = new QDoubleSpinBox;
_parameters->addWidget(yTarget, _pos, 2);
QPushButton *randomCoordinatesTarget = new QPushButton(tr("&Rand"));
connect(randomCoordinatesTarget, SIGNAL(clicked()), this, SLOT(ComputeNewRandomTargetCoordinates()));
_parameters->addWidget(randomCoordinatesTarget, _pos, 3);
}
//~~
A::~A()
{
delete xTarget;
delete yTarget;
} |
et le code où par exemple je crée un objet et je le supprime juste après pour tester :
Code:
1 2 3 4 5
|
QGridLayout *parameters = new QGridLayout;
A *test = new A(parameters, 0, 0, pos);
parameters->removeWidget(test);
delete test; |
- Si j'enlève le delete, le removeWidget ne fonctionne pas.
- Si je mets le delete, l'appli plante à la création (à cause du destructeur de ma classe A, si je commente les deux lignes de code ça ne plante plus mais ne fait rien).
- la fonction hide ne fonctionne pas non plus.
Merci de votre aide :)