2013-07-26 34 views
0

我已經重新實現QSqlTableModel.select()來顯示所有的視圖模型返回的結果:重新實現QSqlTableModel.setQuery

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 

我願做同樣的事情與功能setQuey,所以我想類似的東西:

def setQuery(self, query): 


    results = QtSql.QSqlTableModel.setQuery(query) 
    self.select(results) 

    while self.canFetchMore(): 
     self.fetchMore() 
    return results 

但我得到這個異常:

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' 

有限公司你告訴我爲什麼我有一個typeError?我不太明白。

回答

1

正如您覆蓋有兩個參數,

def setQuery(self, query): 

調用QtSql.QSqlTableModel.setQuery需要兩個參數:

results = QtSql.QSqlTableModel.setQuery(self, query)