我正在为Ubuntu和Windows开发QT cross flat form应用程序。我的问题很简单,但对QT来说有点新,我无法弄明白。我在QML中有以下代码。我在qml中使用QT TextField
。当第一次加载QML时,我希望id_username
TextField默认情况下应该在初始位置(0)显示游标,这不会发生。当我使用鼠标单击相同的TextField时,光标在初始位置可见。我正在做focus: true
这没有帮助。接下来,我添加了cursorVisible: true
,当加载qml时,该光标是可见的,但我无法输入任何内容(输入任何内容),直到我点击TextField
。
TextField
{
id: id_username
objectName: "id_username"
placeholderText: qsTr("username")
color: "#000000"
font.pixelSize: 20
cursorPosition: 0
selectByMouse: true
anchors.horizontalCenter: parent.horizontalCenter
focus: true
background: Rectangle
{
anchors.horizontalCenter: parent.horizontalCenter
implicitWidth: 200
border.color: id_username.focus ? "#000000": "#36404e"
border.width: id_username.focus ? 2: 1
radius: id_instruction.height / 4
}
}
请让我知道我做错了什么。是否有任何onLoad函数可以从哪里调用forceActiveFocus()
答案 0 :(得分:1)
在TextField
中尝试此操作:
onVisibleChanged: if(visible) id_username.forceActiveFocus()
参考链接 - http://www.qtcentre.org/threads/62655-How-to-gain-focus-onto-TextEdit-in-QML