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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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