在 QML TextInput 中显示长字符串的开头而不是结尾

Show the beginning of a long string in a QML TextInput instead of the end

我有一个 TextInput QML (Qt 5.12.2) 控件包装在一个矩形项(用于样式)中,我正在用一个字符串预先填充它。有时该字符串可能比 TextInput 的最大宽度长。发生这种情况时,文本输入中的文本会像这样显示字符串的结尾:

但是,我希望 TextInput 中的文本从字符串的开头开始显示,如下所示:

这是一个重现此内容的示例:

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    visible: true
    width: 640
    height: 480
    Rectangle {
        border.width: 1
        border.color: 'black'
        height: childrenRect.height
        width: 600
        clip: true
        TextInput {
            width: parent.width
            text: "1. The quick bown dog jumps over the lazy dog. 2. The quick bown dog jumps over the lazy dog. 3. The quick bown dog jumps over the lazy dog. 4. The quick bown dog jumps over the lazy dog."
        }
    }
}

我尝试将 autoScroll 设置为 false,这确实使它以我想要的方式显示,但也禁用了用户在想要阅读文本末尾时滚动文本的能力。我还能做些什么来解决这个问题吗?

您可以ensureVisible方法:

TextInput {
    id: input
    width: parent.width
    text: "1. The quick bown dog jumps over the lazy dog. 2. The quick bown dog jumps over the lazy dog. 3. The quick bown dog jumps over the lazy dog. 4. The quick bown dog jumps over the lazy dog."
    Component.onCompleted: input.ensureVisible(0)
}