PyQt4和Sqlite3的自定义功能

时间:2013-10-04 23:33:09

标签: python sqlite qt4 pyqt4

如何在QtSql.QSqlDatabase中定义自定义函数?

在纯python(python - sqlite3)中,看起来很简单,但我不知道如何在PyQt中做到这一点。

1 个答案:

答案 0 :(得分:0)

我的第一个问题是注册函数regexp来过滤QSqlTableModel中的数据。 我不知道是否可以在常规python sqlite3中注册我们自己的函数,但无论如何要解决我的问题我使用Qt方式使用QSortFilterProxyModel。

最后我们有:

view - >代理 - >模型


    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