首页 > 解决方案 > 在 Qt Quick Controls 中隐藏 TextArea 时无法摆脱光标

问题描述

这个问题似乎微不足道,我几乎相信这是 Qt 本身的一个错误:

import QtQuick.Window 2.2
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Layouts 1.1

Window {
    id: window
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Rectangle {
        color: "white"
        Layout.columnSpan: 2
        Layout.fillHeight: true
        Layout.fillWidth: true
        radius: 5
        width: 640/2
        height: 480/2

        TextArea {
            id: txtMemo
            anchors.fill: parent
            anchors.margins: 5
            textColor: "black"
            wrapMode: TextEdit.Wrap
            readOnly: false
        }
    }

    Button {
        x: 0
        y: 480/2
        width: 640/2
        height: 480/2

        onClicked: {
            //Qt.inputMethod.hide()
            txtMemo.visible = false
        }
    }
}

您需要在 Android 设备上运行它才能看到错误:

在此处输入图像描述

  1. 在文本区域中输入内容,以显示光标和虚拟键盘。

  2. 单击按钮时,光标和键盘将停留在屏幕上。不知道为什么,也许是一个功能。

无论如何,这不是主要问题。当我取消注释Qt.inputMethod.hide()并尝试复制时,会发生一件有趣的事情:

(为画质道歉)

那么如何摆脱光标呢?在 Android 上的 Qt 5.9.6 上测试(似乎与 Android 版本无关,也发生在最新版本上)。

标签: qtqmlqtquickcontrols2

解决方案


推荐阅读