QtSql.QSqlDatabase 内でカスタム関数を定義するには?
純粋なpython(python - sqlite3)内では簡単に思えますが、PyQt内でそれを行う方法がわかりません。
QtSql.QSqlDatabase 内でカスタム関数を定義するには?
純粋なpython(python - sqlite3)内では簡単に思えますが、PyQt内でそれを行う方法がわかりません。
私の最初の質問は、QSqlTableModel でデータをフィルター処理するための関数 regexp の登録に関するものでした。通常のpython sqlite3のように独自の関数を登録できるかどうかはわかりませんが、とにかく私の問題を解決するには、QSortFilterProxyModelを使用してQtの方法を使用します。
最終的には次のようになります。
ビュー -> プロキシ -> モデル
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