このリストを維持するために使用されるデータを維持するためのQAbstractListModel
サブクラス化されたモデルがあります。このデータを 1 時間維持する必要があります。つまり、古いデータはリストから削除されます。これは基本的にFIFOリストです。データを並べ替えるプロキシ モデル (のサブクラス) があります。データが変更されるたびに、プロキシ モデルはインデックスを失い、フィルタリングされていないデータを表示します。以下は、これを行うためのコード スニペットです。QList
QDateTime
QSortFilterProxyModel
emit layoutAboutToBeChanged();
beginInsertRows(QModelIndex(), 0, 1); //we are prepending
m_entries.prepend(e);
endInsertRows();
emit layoutChanged();
これで問題は解決したようです。しかし、ビュー ( ) で何かが選択されているとQTreeView
、アプリケーションがクラッシュし、これらのエラー メッセージが大量に表示されます。
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
QSortFilterProxyModel: index from wrong model passed to mapFromSource
デバッガーのスタック トレースは、mouseSelectEvent
および を必要とする他の関数を示しますQModelIndex
。
長い質問で申し訳ありません。誰かがこの問題を解決するのを手伝ってくれませんか?
ありがとう。