0

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

在纯 python ( python - sqlite3 ) 中,它看起来很容易,但我不明白如何在 PyQt 中做到这一点。

4

1 回答 1

0

我的第一个问题是关于注册一个函数正则表达式来过滤 QSqlTableModel 中的数据。我不知道是否可以像在常规 python sqlite3 中一样注册我们自己的函数,但无论如何,为了解决我的问题,我使用 Qt 方式使用 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
于 2013-10-05T02:25:33.193 回答