QPlainTextEditまたはQTextEdit領域が変更された場合にスクロールバーを下/上にジャンプするようにプログラムする方法は? 制御機能はないようです。
6 に答える
QTextEdit と QPlainTextEdit はどちらも QAbstractScrollArea から継承されています。QAbstractScrollArea オブジェクトは、verticalScrollBar() メソッドを通じてスクロールバーへのアクセスを提供します。
したがって、トップにジャンプするには:
ui.textEdit->verticalScrollBar()->setValue(0);
そして一番下にジャンプするには:
ui.textEdit->verticalScrollBar()->setValue(ui.textEdit->verticalScrollBar()->maximum());
これは、QTextEdit と QPlainTextEdit の両方で機能するはずです。
「ensureCursorVisible」メソッドを使用できます。
void QTextEdit::ensureCursorVisible () Ensures that the cursor is visible by scrolling the text edit if necessary.
ただし、これはスロットではないため、どのシグナルにも接続できません。void textChanged() シグナルに接続できるものを自分で作成する必要があります。
免責事項: 質問を誤解している可能性があります。テキストにテキストが追加されたときに下にスクロールしたいと思っていると思います。
テキスト エディット コントロールのサイズが変更されると、QWidget::resizeEvent
が呼び出されます。サブクラスでこの関数をオーバーライドし、verticalScrollBar -> setValue (verticalScrollBar -> minimum())
(またはmaximum()
) を呼び出すだけです。