QtableViewとQStandardItemModelを使用して、適切な間隔とフィルタログを維持するためにGUI上にログを表示しています。私はモデルを作成し、そこにデータを挿入しました。フィルター文字列にQSortFilterProxyModelを使用しました。QtexteditのようにQtableviewで自動スクロールを有効にするには?
self.tableView = QtGui.QTableView(self)
self.model = QtGui.QStandardItemModel(self)
self.proxy = QtGui.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.model)
self.tableView.setModel(self.proxy)
秒で約100のログが予想され、GUIで表示する必要があります。新しいログが追加されると、ビューは自動スクロールされず、スライダーは一番上に留まります。ロギングのための生き生きとした感覚を与えるものではなく、手動で最後までスクロールする必要があります。だから、これを克服するために、私は次の構文、
self.model.rowsInserted.connect(lambda: QtCore.QTimer.singleShot(5, self.tableView.scrollToBottom))
を使用これは、ログのライブ感じを与えるが、スライダーは底に常に残り、私は以前のログを見るためにスクロールアップすることはできませんよ。私がスライダを動かそうとすると、すぐに再び下に下がります。したがって、この構文は私の要件を満たしていません。 QTextEditでは、自動スクロールが適切でユーザーフレンドリーです。 QtableViewでも同じシナリオが必要です。 QTextEditのような自動スクロールの代替手段はありますか?
QTableViewまたはQTreeView:ここ
は簡単なデモで? – eyllanesc
QTableView @eyllanesc –
なぜプロキシを使用しますか? – eyllanesc