Показывать начало длинной строки в QML TextInput вместо конца - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть элемент управления TextInput QML (Qt 5.12.2), обернутый в элемент Rectangle (для стилизации), который я предварительно заполняю строкой.Иногда эта строка может быть длиннее максимальной ширины TextInput.Когда это происходит, текст в текстовом вводе показывает конец строки следующим образом:

TextInput with end of string displayed

Однако я хотел бы, чтобы текст в TextInputотобразить с начала строки, как это:

TextInput with start of string displayed

Вот пример, который воспроизводит это:

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, что заставляет его отображать то, что я хочу, но также отключает возможность для пользователя прокручивать текст, если он хочет прочитать его конец.Есть ли что-то еще, что я могу сделать, чтобы это исправить?

1 Ответ

1 голос
/ 23 апреля 2019

Вы можете обеспечить Видимый метод:

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)
}
...