私は自分自身QAbstractTableModel
をSQLiteに接続しています。データベースからデータを取得し、列名でリストに書き込みます。データを探しているときに、SQL クエリでテーブルを処理したくありません。
についてどう思いますか?それは正常ですか?
アドバイスをお願いします。
私は自分自身QAbstractTableModel
をSQLiteに接続しています。データベースからデータを取得し、列名でリストに書き込みます。データを探しているときに、SQL クエリでテーブルを処理したくありません。
についてどう思いますか?それは正常ですか?
アドバイスをお願いします。
モデル内のデータを検索するには、QSortFilterProxyModelを使用できます。モデルをプロキシ モデルのソース モデルとして設定し、プロキシ モデルを「検索結果」ビューに表示します。
とを使用setFilterRegExp()
しsetFilterKeyColumn()
て、たとえば、探している名前と「名前」列を指定できます。より複雑なフィルタリングが必要な場合は、サブクラス化することもできます。ドキュメントに例があります。
いいえ、QtSQLモジュールはORMを提供しないため、SQLクエリを自分で作成する必要があります。
ただし、検索/フィルタリングにはQSortFilterProxyModelを使用できます(またはサブクラス化するか、フィルタリングコードをサブクラスに配置することもできます)。QAbstractTableModel
ただし、リレーショナルデータベースは検索を最適化する可能性があるため(そして高い確率で)、そうしないことをお勧めします。