Folgendes Problem betrifft zwar eher das Thema mehrfache Vererbung, aber die verwendeten Klassen kommen aus PySide (bzw. PyQt4). MyTableModel steht exemplarisch für eine Subklasse von QSqlTableModel, die die Daten für die View aufbereiten soll. Da in einer verwendeten Tabelle nun aber foreign keys stehen, brauche ich dafür zusätzlich die Methoden von QSqlRelationalTableModel. Daher bietet es sich an, für die Subklasse MyRelationalTableModel von MyTableModel und von QSqlRelationalTableModel zu erben um die Funktionalität aus beiden Klassen zu haben.
Nun arbeitet MyTableModel wunderbar korrekt, aber MyRelationalTableModel kann rowCount nicht ausführen, obwohls im dir() gelistet ist und diese Methode eigentlich via MyTableModel - QSqlTableModel erben müsste...
Vielen Dank für die Aufklärung des Konfuzius...
raorao
Code: Alles auswählen
from PySide.QtSql import *
class MyTableModel(QSqlTableModel):
def __init__(self, parent = None, db = QSqlDatabase()):
super(MyTableModel, self).__init__(parent, db)
def columnCount(self):
return 3
class MyRelationalTableModel(MyTableModel, QSqlRelationalTableModel):
def __init__(self, parent = None, db = QSqlDatabase()):
super(MyRelationalTableModel, self).__init__(parent, db)
#model = MyTableModel()
model = MyRelationalTableModel()
print 'rowCount' in dir(model)
print model.rowCount()
print 'Ende'