2

私は PyQt でプログラミングを練習するための簡単な学生スコア マネージャーを書いています (ひどいVisual Basicはもう使いたくありません)。しかし、データモデルの選択に大きな問題がありました。

最初に見つけQSqlTableModelたのは、自動更新機能を備えた優れたモデルです。問題は、データベースからデータを選択するために大量の SQL ( JOIN、 ) を使用する必要があることです。持っているだけです。WHEREQSqlTableModelselect()filter()

それから私は見つけましQSqlQueryModelたが、それは読み取り専用です。setData()だから私はその方法を書き直します 。したがって、現在は読み書き可能です。残念ながら、QSqlQueryModelよりも使用可能な機能が少なくなりますQSqlTableModel

ご覧のとおり、 で SQL を使用できれば、QSqlTableModelすべての問題を解決できます。

そう...?

4

1 に答える 1

2

QSqlTableModel次のようなカスタムクエリを設定するために使用できるメソッドがsetQueryあります。

model = QSqlTableModel()
query = QSqlQuery(your_query)
model.setQuery(query)

ただし、Qt のドキュメントには次のように記載されています。

この関数は、QSqlQueryModel::setQuery(query) を呼び出すだけです。通常、QSqlTableModel では呼び出さないでください。代わりに、setTable()、setSort()、setFilter() などを使用してクエリを設定します。

于 2012-12-25T16:19:45.617 に答える