6
votes

Dois-je le supprimer? [QT]

Dois-je supprimer des objets du tas dans l'exemple ci-dessous? Et si oui, comment? XXX

Merci pour toute aide.

qt

0 commentaires

3 Réponses :


12
votes

3 commentaires

Mais dois-je supprimer un objet séparateur? Ou dois-je le placer sur la pile?


Ah oui, bien je mettrais le diviseur sur la pile


Oui, supprimez-le ou placez-le sur la pile.



1
votes

Gregory Pakosz a souligné la solution appropriée, mais je voulais réitérer avec un exemple de code et vous suggérer d'examiner la portée de l'objet C ++. Greg est précis mais n'a précisé que la mise en place de la splitter sur la pile signifie qu'une fois qu'elle dépasse de la portée (l'application quitte), il sera supprimé.

plus précisément, vous devez définir un parent de QOBJET. Lorsqu'un objet parent s'applique à un autre objet, il supprime ses enfants lors de l'appel de Supprimer sur l'objet parent. Dans l'affaire QSplitters, Addwidget ajoute à la disposition de Qwidget et la mise en page prend la propriété de ces objets. P>

#include <QApplication>
#include <QTreeView>
#include <QListView>
#include <QTableView>
#include <QSplitter>

int main(int argc, char* argv[])
{
    QApplication app(argc,argv);

    QTreeView* tree = new QTreeView;
    QListView* list = new QListView;
    QTableView* table = new QTableView;

    QSplitter splitter;

    splitter.addWidget(tree);
    splitter.addWidget(list);
    splitter.addWidget(table);
    splitter.show();

    return app.exec();
}


0 commentaires

0
votes

Au lieu de gérer la mémoire manuellement, vous pouvez laisser le compilateur le faire pour vous. À ce moment-là, vous pouvez demander: pourquoi utiliser le tas du tout? Vous devriez garder les choses en valeur autant que possible et laisser le compilateur faire le travail acharné.

Les objets seront détruits dans l'ordre inverse de la déclaration. Ainsi, le séparateur - le parent implicite - doit être déclaré en premier, de sorte qu'il ne tente pas de supprimer de manière incorrecte ses enfants. En C ++, l'ordre des déclarations a une signification! xxx


0 commentaires