2013-10-04 50 views

回答

0

我的第一個問題是關於註冊函數regexp來過濾QSqlTableModel中的數據。 我不知道是否有可能註冊我們自己的函數,就像在普通的python sqlite3中一樣,但無論如何要解決我的問題,我使用QS方式使用QSortFilterProxyModel。

最後,我們有:

視圖 - >代理 - >模型


tbl = self.tableViewPlaylist 
    proxy = self.mediasModelProxy 
    proxy.setSourceModel(self.mediasModel) 
    proxy.setFilterCaseSensitivity(Qt.CaseInsensitive) 
    proxy.setFilterKeyColumn(-1) 
    tbl.setModel(self.mediasModelProxy) 

def update_filter(self): 
     log.info('Updating Filter') 
     tokens = str(self.lineEditFilter.text()).split() 
     if len(tokens) <= 0: 
      self.mediasModelProxy.setFilterRegExp(QRegExp('')) 
      return 
     nq = '|'.join(tokens) 
     rx = QRegExp("(%s)" % nq, Qt.CaseInsensitive) 
     self.mediasModelProxy.setFilterRegExp(rx) 
     return