Utilisation de PyQt 5 J'ai essayé de trouver un moyen de faire glisser et déposer l'ancien parent sur un élément dans une situation QTreeView en utilisant QStandardItemModel et QStandarItems.PyQt 5 QStandardItem Enregistrement de l'ancien parent
Je veux vraiment éviter de créer mon propre modèle si possible. Ma tentative actuelle consiste à stocker le parent actuel dans l'élément lorsqu'il est créé en tant que "parent ancien" et il ne doit pas être mis à jour dans le déplacement afin que je puisse le référencer mettre à jour les valeurs dans les anciens éléments parents, puis mettre à jour le "vieux parent" dans l'élément déplacé vers le nouveau parent actuel.
Je ne peux pas sembler le faire fonctionner bien, voici le code que je suis en train d'utiliser pour stocker le « vieux parent » lorsque l'élément est créé:
item.setData(parent.index(),(Qt.UserRole+3))
Quand je lance ce mais je l'erreur suivante:
QVariant::save: unable to save type 'QModelIndex' (type id: 42).
et je ne peux pas faire référence à l'ancien parent à ce moment ...
J'ai trouvé une référence en utilisant C++ et beaucoup de « casting pointeur », mais je ne pouvais pas comment convertir le code à Python et PyQt 5.
C++ Référence: https://forum.qt.io/topic/1690/qvariant-save-load-unable-to-save-type-x/19
Merci pour toute aide!
Avec votre tentative actuelle, dès que vous glissez-déposez un élément, les index stockés de tous ses enfants (et tous leurs enfants, etc.) seront immédiatement invalidé. Donc, ce type d'approche ne va pas fonctionner, peu importe comment il est mis en œuvre. Quel est le problème que vous essayez de résoudre en faisant cela? – ekhumoro
J'essaye de mettre à jour la somme d'une colonne quand j'enlève une rangée d'articles et la dépose à un autre endroit dans l'arbre. Chaque nœud parent a un élément de somme qui conserve une somme des éléments enfants dans la colonne, j'essaie d'obtenir cet élément de somme à mettre à jour chaque fois que je déplace des éléments dans et hors. J'espère que cela a du sens! – Zexelon