1
私は私のモデル/ビューベースPyQt
アプリケーションで次のSQL
文のPyQt
同等のものを使用したい:ソート
SELECT * FROM table ORDER BY foo, bar
私はQSqlTableModel
でソート複数のカラムで行う方法、特にsetSort()
は単一のcolumn
引数を受け入れますか?
私は私のモデル/ビューベースPyQt
アプリケーションで次のSQL
文のPyQt
同等のものを使用したい:ソート
SELECT * FROM table ORDER BY foo, bar
私はQSqlTableModel
でソート複数のカラムで行う方法、特にsetSort()
は単一のcolumn
引数を受け入れますか?
と呼ばれるsetSort()
の代替品があるようです。 PyQtはドキュメントから :
QSqlTableModel.setFilter(自己、QStringのフィルタは)
フィルタする現在のフィルタを設定します。
フィルタは、キーワードWHERE( の例では、name = 'Josephine')のないSQL WHERE句です。
fooModel.setFilter("never_zero != 0 ORDER BY foo, bar")
never_zero
フィールドがある(驚き、驚き)は決してゼロ:
エルゴは、この問題を解決します。
これは不正行為によく似ており、誤解を招く可能性があります。通常、フィルタでクエリをソートすることは期待していません。 'QSqlTableModel'は、複雑なクエリが必要なときに限られています。 'QSqlQueryModel'がオプションになります。書き込みアクセスが必要な場合は、サブクラス化して適切なメソッドを提供できます。または、あなたのデータセットがそれほど大きくない場合は、カスタムの 'QSortFilterProxyModel'を間に置くことを検討するかもしれません。元の 'QSortFilterProxyModel'もソートのための単一の列を期待しているので、それはカスタムである必要がありますが、独自のソート実装をサブクラス化して提供するのはむしろ簡単です。 – Avaris