En travaillant avec Qt ItemViews, le widget d'édition d'un élément peut être modifié via un QItemDelegate
qui peut créer un éditeur personnalisé via createEditor
. Qui est responsable de la suppression de l'instance créée par le délégué.Ce qui supprime le widget créé par un QItemDelegate personnalisé
Je ne pouvais pas trouver toute la documentation qui explique cela, si vous pointez simplement à la section appropriée qui est très bien prendre soin généralement
Je sais sur la gestion de la mémoire Qt parent-enfant. Dans ce cas, cela signifierait que tous les widgets créés lorsque quelqu'un veut éditer un élément de table ne seraient nettoyés que lorsque la vue (le parent dans ce cas) serait supprimée, cela ne semble pas être une solution propre. –
I comprends mieux ton inquiétude maintenant. Si c'est effectivement le comportement et beaucoup d'éléments sont édités, beaucoup d'éléments seront créés et laissés traîner. J'ai essayé de parcourir le code source pour voir ce qui pourrait se passer mais ce n'est pas un code facile à parcourir :) Une expérience pourrait cependant aider. Dans votre implémentation de createEditor, connectez un emplacement au nouveau signal d'objets destroy() avec quelques informations de cout et voyez si vous pouvez savoir quand ils sont supprimés. En outre, je suppose qu'un seul élément peut être édité à la fois, peut-être toujours retourner le même élément. Désolé, je ne pouvais pas trouver plus d'informations solides. –
J'ai mis un point d'arrêt sur le destructeur et j'ai suivi ce retour, merci pour l'aide –