在 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)
}
我有一个 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)
}