15

QPlainTextEditまたはQTextEdit領域が変更された場合にスクロールバーを下/上にジャンプするようにプログラムする方法は? 制御機能はないようです。

4

6 に答える 6

31

QTextEdit と QPlainTextEdit はどちらも QAbstractScrollArea から継承されています。QAbstractScrollArea オブジェクトは、verticalScrollBar() メソッドを通じてスクロールバーへのアクセスを提供します。

したがって、トップにジャンプするには:

ui.textEdit->verticalScrollBar()->setValue(0);

そして一番下にジャンプするには:

ui.textEdit->verticalScrollBar()->setValue(ui.textEdit->verticalScrollBar()->maximum());

これは、QTextEdit と QPlainTextEdit の両方で機能するはずです。

于 2012-11-23T10:52:12.417 に答える
11

「ensureCursorVisible」メソッドを使用できます。

void QTextEdit::ensureCursorVisible ()
Ensures that the cursor is visible by scrolling the text edit if necessary.

ただし、これはスロットではないため、どのシグナルにも接続できません。void textChanged() シグナルに接続できるものを自分で作成する必要があります。

免責事項: 質問を誤解している可能性があります。テキストにテキストが追加されたときに下にスクロールしたいと思っていると思います。

于 2011-02-08T22:37:42.527 に答える
8

テキスト エディット コントロールのサイズが変更されると、QWidget::resizeEventが呼び出されます。サブクラスでこの関数をオーバーライドし、verticalScrollBar -> setValue (verticalScrollBar -> minimum())(またはmaximum()) を呼び出すだけです。

于 2011-02-08T22:35:22.170 に答える