Использование PyQt 5 Я пытаюсь найти способ заставить старый родитель из операции перетаскивания элемента в ситуации QTreeView использовать QStandardItemModel и QStandarItems.PyQt 5 QStandardItem Хранение старого родителя
Я действительно хочу избежать создания собственной модели, если это возможно.
Моя текущая попытка состоит в том, чтобы сохранить текущего родителя в элементе, когда он создан как «старый родитель», и он не должен обновляться в перемещении, поэтому я могу ссылаться на него, обновляя значения в старых родительских элементах, а затем обновите «старый родитель» в перемещенном элементе новому новому родительскому элементу.
я не могу заставить его работать, хотя, вот код, который я пытаюсь использовать для хранения «старый родитель», когда создается элемент:
item.setData(parent.index(),(Qt.UserRole+3))
Когда я запускаю это, однако я получить следующее сообщение об ошибке:
QVariant::save: unable to save type 'QModelIndex' (type id: 42).
и я не могу ссылаться на старый родитель в этот момент ...
Я нашел одну ссылку с помощью C++ и много «указатель литья», но я не мог понять , как преобразовать код в Python и PyQt 5.
C++ Reference: https://forum.qt.io/topic/1690/qvariant-save-load-unable-to-save-type-x/19
Спасибо за любую помощь!
С текущей попытки, как только вы перетащите элемент, сохраненные индексы всех своих детей (и все их дети, и т.д.) будут немедленно аннулированной. Таким образом, такой подход не будет работать, как бы он ни реализовывался. Какова фактическая проблема, которую вы пытаетесь решить, делая это? – ekhumoro
Я пытаюсь обновить сумму столбца, когда я удаляю из него ряд элементов и переношу их в другое место в дереве. Каждый родительский узел имеет элемент суммы, который хранит сумму дочерних элементов в столбце, я пытаюсь получить этот элемент суммы для обновления всякий раз, когда я перемещаю элементы. Надеюсь, это имеет смысл! – Zexelon