QT qml TextField在第一次加载

时间:2017-09-07 06:19:45

标签: c++ qt qml qtextedit

我正在为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()

1 个答案:

答案 0 :(得分:1)

TextField中尝试此操作:

onVisibleChanged: if(visible) id_username.forceActiveFocus()

参考链接 - http://www.qtcentre.org/threads/62655-How-to-gain-focus-onto-TextEdit-in-QML