В настоящее время я пытаюсь поиграться с Python и QT, чтобы создать некоторые инструменты для Maya (3D-приложения).
До сих пор я ладил, но теперь у меня есть некоторые проблемы и я получаю голова вокруг наследства. Я создал дочерний класс QListWidgetItem для добавления некоторых пользовательских логик c и хотел получить доступ к этим логам c на более позднем этапе при переборе левого QListWidget.
# Widget to get displayed inside myQListWidget
class BaseModule(QtWidgets.QListWidgetItem):
def __init__(self,name):
super(BaseModule, self).__init__(parent=parent)
self.setText(name)
self.name = name
def BuildSkeleton(self):
# Do some magic in here
window = belt.TWToolbelt()
rootModule = BaseModule(name='Root')
window.ui.AllModules.addItem(rootModule)
model = window.ui.ActiveModules.model()
model.rowsInserted.connect(lambda *_:drop(window))
# function, which get`s executed after a drag&drop action
def drop(window):
items = []
for index in xrange(window.ui.ActiveModules.count()):
items.append(window.ui.ActiveModules.item(index))
for item in items:
# iterating over all Active Modes on the left to execute my custom logic
# as item is a QtWidget.QListWidgetItem and the fucntion is only existing
# in it`s child class BaseModule I would like to know, how I can access or cast from a
# ParentClass to it`s child class, so I can execute my function
item.BuildSkeleton()
Я получаю следующую ошибку с этим кодом:
AttributeError: 'PySide2.QtWidgets.QListWidgetItem' object has no attribute 'BuildSkeleton'
Надеюсь, вы мне поможете.
Заранее спасибо