スクロール領域を自動スクロールするにはどうすればよいですか? たとえば、スクロール領域のビューが同じままではなく、新しい更新があった場合は、新しいテキストで下に移動したいと考えています。コマンドを入力すると、出力とともに自動スクロールするCMDコンソールのように考えてください。
2 に答える
私はちょうど他の答えに答えるつもりでしたが、割り当てられたスペースでそれを表現する最善の方法を知りませんでした.
QScrollArea は、カスタム PyQt ウィジェットを設計するときに使用する非常に便利なウィジェットです。私はよく使用します。ロールアウト ウィジェット、カード ウィジェット、スクロールが必要な複数のサブウィジェットを表示できるものは、非常に便利なユーティリティです。QScrollArea だけではあまり役に立たないという考えには同意しません。
QTextEdit の回答は、開発者が直面していた問題を解決します。テキスト編集をスクロールしようとしている場合は、その答えを使用してください。
ただし、実際の質問に対する回答を探していて、このスレッドに出くわした場合、QScrollArea を下にスクロールする方法は、実際にスクロールバーの値を変更することです。
area = QScrollArea(parent)
vbar = area.verticalScrollBar()
vbar.setValue(vbar.maximum())
特定の領域または何か (ensureCursorVisible の実装など) にスクロールする場合は、スクロールしたい領域のウィジェットの位置を取得し、その高さのパーセンテージを計算し、その値を垂直スクロールバー。(疑似コード)
を使用QTextEdit.moveCursor
してスクロール先の場所を設定し、 を使用QTextEdit.ensureCursorVisible
してスクロールします。
textedit.moveCursor(QtGui.QTextCursor.End)
textedit.ensureCursorVisible()