Javascript 如何在QML中使用forwardTo在TextInput上显示光标

Javascript 如何在QML中使用forwardTo在TextInput上显示光标,javascript,qt,qml,Javascript,Qt,Qml,我在屏幕上有两个元素,一个矩形和一个TextInput。当activefocus设置在矩形上并且我键入任何内容时,我需要将键入的输入获取到TextInput 为此,我使用了curRect.Keys.forwardTo=[curTextbox] 它工作正常,但我也希望在焦点位于矩形上时看到光标 在上面QT的链接中,它说 它可以直接在脚本中设置,例如,如果使用KeyProxy 可能会将关键点转发给它,并且您希望它在执行此操作时看起来处于活动状态 发生(但实际上没有给予它积极的关注) 但我的情况并非

我在屏幕上有两个元素,一个矩形和一个TextInput。当activefocus设置在矩形上并且我键入任何内容时,我需要将键入的输入获取到TextInput

为此,我使用了
curRect.Keys.forwardTo=[curTextbox]

它工作正常,但我也希望在焦点位于矩形上时看到光标

在上面QT的链接中,它说

它可以直接在脚本中设置,例如,如果使用KeyProxy 可能会将关键点转发给它,并且您希望它在执行此操作时看起来处于活动状态 发生(但实际上没有给予它积极的关注)

但我的情况并非如此

有人能给我解释一下为什么会这样,以及我如何实现我的目标,即即使activeFocus在矩形上也显示光标吗

即使在输入文本时显示光标,也会很好

更新:

import QtQuick 1.0

FocusScope{

    width: 400
    height: 400
    TextInput {Rectangle{anchors.fill: parent;color:"#66ff0000"}
        id: mytext
        anchors.top:parent.top
        cursorVisible: true
        width: rect.width
        MouseArea{
            anchors.fill: parent;
            onClicked: mytext.forceActiveFocus()
        }
        Keys.onDownPressed: {
            mytext2.forceActiveFocus();
        }
    }
    TextInput {Rectangle{anchors.fill: parent;color:"#66ff0000"}
        id: mytext2
        anchors.top:mytext.bottom
        cursorVisible: true
        width: rect.width
        MouseArea{
            anchors.fill: parent;
            onClicked: mytext2.forceActiveFocus()
        }

        Keys.onUpPressed: {
            mytext.forceActiveFocus();
        }
    }
    Rectangle {
        id:rect
        width: 360
        height: 360
        color:rect.activeFocus?"#6600ff00":"#660000ff"
        focus: true
        Keys.forwardTo: mytext
        MouseArea{
            anchors.fill: parent;
            onClicked: rect.forceActiveFocus()
        }
    }
    Component.onCompleted: rect.forceActiveFocus();
}

提前感谢。

焦点的更改将重置
光标可见属性。。。因此,当您单击
rect
,焦点通过
forceActiveRecord
mytext
转移到它时,
mytext.cursorVisible
会自动设置为false。如果要保持光标可见,应将其重置为true。这可以通过将您的
rect.MouseArea.onClicked
更改为:

        onClicked: {
            rect.forceActiveFocus();
            mytext.cursorVisible = true;
        }
如果希望
mytext
上的光标始终可见,还可以使用
onCursorVisibleChanged
处理程序强制其为true。在
mytext
对象中使用此选项:

    onCursorVisibleChanged: {
        if (!cursorVisible)
            cursorVisible = true;
    }

PS:我发布了一个新的答案,因为添加的细节已经改变了很多。。。我以后可能会删除上一个。

对不起,这是不可能的。您可以始终输入|登录模糊,以便在输入中有一些内容。但它不会闪烁。在焦点上,你可以将光标移回管道所在的位置并将其删除。@Jakubbolomský你确定吗?文件似乎表明了这一点。不过我从来没有试过。我想把活动焦点转移到文本输入可能更容易,为什么你没有选择?你是如何尝试的?我可以用最直接的方式让它工作。请参阅我的答案以获取代码。提供代码,以便我们可以更好地帮助您。您好,请参阅我添加的示例代码