def from_QUndoCommand(qc: QUndoCommand, parent=None): if type(qc) == QUndoCommand: qc.__class__ = UndoCommand qc.__parent = parent children = [qc.child(i) for i in range(qc.childCount())] for child in children: UndoCommand.from_QUndoCommand(child, parent=qc) return qc