提问人:EL96cpp 提问时间:9/26/2023 最后编辑:EL96cpp 更新时间:9/27/2023 访问量:57
为盲人打字培训师选择合适的QML课程
Choose right QML class for blind typing trainer
问:
我正在开发QML盲打训练器,但不知道我应该使用哪个QML类来显示文本。我需要某种文本编辑器,光标固定在特定位置,当用户输入正确的符号时,整个文本会向左移动一个符号。
为此,我已经尝试了 TextEdit 和 TextArea,但我无法弄清楚如何使它们工作。 以下是我想要实现的行为示例: 示例
答:
0赞
folibis
9/26/2023
#1
我认为这在这里绝对没用,因为你实际上并没有编辑文本。如上所述@iam_peter您可能必须自己实现控制。TextEdit
例如,像这样:
Window {
id: window
visible: true
width: 600
height: 400
title: "Typing trainer"
Rectangle {
id: outer
height: 40
width: 400
anchors.centerIn: parent
radius: 5
border.width: 2
border.color: "#999"
color: "#eaf2f8"
clip: true
focus: true
Keys.onPressed: (event)=>
{
var ch = event.text;
if(ch === container.getChar())
{
container.position ++;
}
}
Row
{
id: container
property string text: "The quick brown fox jumps over the lazy dog"
property int position: 0
x: (outer.width / 2 - metrics1.width)
function getChar()
{
return container.text[container.position];
}
Text {
id: block1
text: container.text.substring(0, container.position)
font.pointSize: 24
color: "#333"
}
TextMetrics {
id: metrics1
text: block1.text
font: block1.font
}
Text {
id: block2
text: container.text.substring(container.position)
font.pointSize: 24
color: "#999"
}
}
}
}
评论
0赞
GrecKo
9/27/2023
吹毛求疵:行,可能只是绑定,这里不需要函数。x
nextChar
0赞
folibis
9/27/2023
你是绝对正确的,谢谢@GrecKo,我已经更新了代码
评论