JPFrancoia
JPFrancoia

Reputation: 5629

Reimplementing QSqlTableModel.setQuery

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

Answers (1)

Radio-
Radio-

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

Related Questions