6

QTableView+を使用QStandardItemModelしていくつかのデータ(他のデータ構造に格納されているデータ)を表示します。このテーブルビューは並べ替え可能です。

並べ替えが可能なので、このモデルを並べ替えるときは、保存されているデータの順序も並べ替える必要があります。ソート信号用のスロットを実装しようとしましたが、ヘッダーをクリックしてソートアクションを開始したときにどの信号が出力されるかわかりません。

クリックされたシグナルを試しましたが、headerDataではなく、データ行に対してのみ発行されます。QtableView+の並べ替え中に何か他のことをしたい場合はどうすればよいですQStandardItemModelか?

4

2 に答える 2

8

ビューのヘッダーは、次の方法で取得できます。

QHeaderView * QTableView::horizontalHeader () const

これで、取得しQHeaderViewたスロットを信号に接続できます。

void QHeaderView::sectionClicked ( int logicalIndex )   [signal].

Qt 4.5のドキュメントから、この信号はセクションがクリックされたときに発行されます。セクションの論理インデックスはlogicalIndexによって指定されます。sectionPressedシグナルも発行されることに注意してください。

それが役に立てば幸い。

于 2010-06-21T04:27:58.327 に答える
2

上記のヘッダービューにはシグナルsortIndicatorChanged(int, Qt::SortOrder)があるので、それを使用する方が賢明かもしれません

また、QSortFilterProxyModel ここで詳細を確認することをお勧めしますhttp://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details

于 2016-01-05T13:58:37.143 に答える