質問するログイン新規登録
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1084閲覧

QSortFilterProxyModel の表示数を指定したい

goki_gottan

総合スコア168

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/08/04 08:04

0

0

PyQt5 QTableViewでフィルターを以下参考サイトに習い、追加しております。
参考サイト

現フィルタ仕様ですと、列全てが表示されます。行数が多いと全て表示され、画面全体にフィルタ列が表示されてしまいます。
QComboboxのようにプルダウン数を指定できればと思い、試行錯誤しておりますがうまくいきません。

self.proxy = QtCore.QSortFilterProxyModel(self) self.proxy.setSourceModel(self.model) # self.proxy.setMaxVisibleItems(5) ----コンボボックスの表示項目数設定 self.proxy.setFilterKeyColumn(2) # self.proxy.setMaxVisibleItems(10) self.view.setSortingEnabled(True) self.view.sortByColumn(0,QtCore.Qt.AscendingOrder) self.view.setModel(self.proxy) self.view.setFont(font2) self.horizontalHeader = self.view.horizontalHeader() self.horizontalHeader.sectionClicked.connect(self.on_view_horizontalHeader_sectionClicked)

self.modelにデータが入っており、そのデータをself.proxyに渡して、
最終的にself.viewに渡す仕様となっております。
ヘッダーをクリックするとエクセルのようなフィルターが出現します。
どのタイミングで、どれに拘束(表示)すれば良いのか分かりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

QSortFilterProxyModel のサブクラスを作成し、rowCount メソッドをオーバーライドすることで
ソート後のデータの表示件数を絞ることが出来ます。

投稿2022/08/14 08:31

teamikl

総合スコア8824

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goki_gottan

2022/08/16 02:49

ご回答ありがとうございます。まずは確認いたしますが、PyQtに関する参考になる書類ってあったりするのでしょうか?Tkinterは豊富な情報がありますが、Qt系はネットでは少なく、みなさんどこで勉強されておられるのか気になります。
teamikl

2022/08/16 09:33

PyQt 自体は (非公式な) Qt の Pythonバインディングの一つという立ち位置であり、 Qt公式で保守されてるのは PySide といった状況なので、 PyQt の新しい情報に追従した書籍自体が希少です。私も検索して得られる以上の情報は知りませんが 入門~であれば - https://doc.qt.io/qtforpython/ 公式サイトによるPySideの情報 - https://www.pythonguis.com/ 書籍の著者が公開されてるチュートリアル そこから先は、 ライブラリ自体の学習は Qt の公式ドキュメント(サンプルコードとリファレンス)だったり、 オープンソースの実際のアプリケーションやQtライブラリ内のソースコード(C++)を読んで 実際の使い方を学ぶといった感じになってきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問