If you intend to use any signal/slot connections on this QTreeWidgetItem, you will need
        to call the requireCleanup method and implement manual disconnections in the destroy method.

        QTreeWidgetItem's do not inherit from QObject, and as such do not utilize the memory cleanup
        associated with QObject connections.

def requireCleanup(self):
        """
        If you intend to use any signal/slot connections on this QTreeWidgetItem, you will need
        to call the requireCleanup method and implement manual disconnections in the destroy method.

        QTreeWidgetItem's do not inherit from QObject, and as such do not utilize the memory cleanup
        associated with QObject connections.
        """
        try:
            tree.destroyed.connect(self.destroy, QtCore.Qt.UniqueConnection)
        except StandardError:
            pass