Reputation: 5629
I have already reimplemented QSqlTableModel.select() to display all the results returned by the model in the view:
def select(self):
self.setTable("videos")
results = QtSql.QSqlTableModel.select(self)
self.setHeaderData(5, QtCore.Qt.Horizontal, "", QtCore.Qt.DisplayRole)
self.setHeaderData(6, QtCore.Qt.Horizontal, "Modification")
self.setHeaderData(9, QtCore.Qt.Horizontal, "Ajout")
while self.canFetchMore():
self.fetchMore()
return results
I would like to do the same thing with the function setQuey, so I tried something like that:
def setQuery(self, query):
results = QtSql.QSqlTableModel.setQuery(query)
self.select(results)
while self.canFetchMore():
self.fetchMore()
return results
But I got this exception:
File "/home/djipey/informatique/python/bibli/model.py", line 23, in setQuery
results = QtSql.QSqlTableModel.setQuery(query)
TypeError: QSqlTableModel.setQuery(QSqlQuery): first argument of unbound method must have type 'QSqlTableModel'
Could you explain to me why I have a typeError ? I don't really understand.
Upvotes: 0
Views: 1080
Reputation: 3171
Just as your override takes two parameters,
def setQuery(self, query):
the call to QtSql.QSqlTableModel.setQuery
requires two parameters:
results = QtSql.QSqlTableModel.setQuery(self, query)
Upvotes: 1